Tôi có chỉ thị sau:AngularJs Truyền dữ liệu phức tạp để chỉ thị
<div teamspeak details="{{data.details}}"></div>
này là cấu trúc đối tượng:
data: {
details: {
serverName: { type: 'text', value: 'my server name' },
port: { type: 'number', value: 'my port' },
nickname: { type: 'text' },
password: { type: 'password' },
channel: { type: 'text' },
channelPassword: { type: 'password' },
autoBookmarkAdd: { type: 'checkbox' }
}
}
và tôi muốn nó để tạo ra một liên kết dựa trên các dữ liệu bên trong data.details
vật. Đáng tiếc là nó không hoạt động kể từ bằng cách nào đó tôi cann't truy cập vào bất kỳ giá trị bên trong của đối tượng details
, nhưng nếu tôi đi qua nó một cấu trúc dữ liệu đơn giản như:
<div teamspeak details="{{data.details.serverName.value}}"></div>
tôi có thể truy cập nó bằng cách sử dụng {{details}}
.
Đây là Mã Chỉ thị của tôi:
App.directive('teamspeak', function() {
return {
restrict: 'A',
template: "<a href='ts3server://{{details.serverName.value}}:{{details.port.value}}'>Teamspeak Server</a>",
scope: {
details: '@details',
},
link: function (scope, element, attrs) {
}
};
});
Cảm ơn
Làm thế nào nó có thể được thực hiện mà không cần cô lập phạm vi ??? – Luckylooke
Điều này dường như không hoạt động với TypeScript.Những gì tôi đã làm là tạo ra một giao diện xác định phạm vi. Trong giao diện đó, tôi có một đối tượng tùy chỉnh. Khi gán giao diện cho phạm vi, tôi không thể làm 'object = '='', bởi vì bạn không thể gán một chuỗi cho một đối tượng kiểu 'ObjectType'. Bất kỳ đề xuất về cách làm điều này với TypeScript? –