我想使用从控制器到我的指令的单向数据绑定,但我得到undefined
而不是实际值。
这是指令scope
scope: {
eventAdmin: '@',
eventId: '@'
}
以下是我使用指令的方法。
<directive event-admin="{{eventAdmin}}" event-id="{{eventId}}"></directive>
这是我的link
功能
function directiveLink (scope, element, attrs) {
console.log(scope.eventId); //-> undefined
}
答案 0 :(得分:1)
如果指令的名称是“directive”,并且包含控制器的作用域具有“eventAdmin”和“eventId”属性,那么这应该有效。
我做了一个你的例子的JSFiddle: https://jsfiddle.net/Royar/qu55ujj5/4/
HTML:
<div ng-app="myApp" ng-controller="myCtrl">
<directive event-admin="{{eventAdmin}}" event-id="{{eventId}}"></directive>
</div>
JS:
var myApp = angular.module('myApp', []);
angular.module("myApp").controller("myCtrl", function($scope) {
$scope.eventAdmin = "aaa";
$scope.eventId = "bbb";
});
angular.module("myApp").directive("directive", function() {
return {
scope: {
eventAdmin: "@",
eventId: "@"
},
template: "{{eventAdmin}}",
link: function(scope, element, attrs) {
console.log(scope.eventAdmin); //working
}
};
});