好的,所以我有一个指令,它接受属性并读取它(并将其写出来)。
以下是plunker:http://embed.plnkr.co/IkKPLahPc9yqeHWEQUG3/
我认为这是因为控制器: main-directive.js 中的 ctrl 没有任何内容,而实际操作发生在隔离指令中#&# 39; s控制器控制器。
这是 main-directive.js :
var app = angular.module('testapp.directive.main', ['main']);
app.directive('myCustomer', function() {
var controller = ['$scope', function($scope) {
$scope.dan = { 'name': 'Dan', 'nationality': 'ESP' };
// scope from here obv...
}];
var template = 'Getting attribute value of =getInfo... {{getInfo.name}} from {{getInfo.nationality}}';
return {
restrict: 'E',
controller: controller,
scope: {
getInfo: "=info"
},
template: template
};
});
app.controller('ctrl', function($scope) {
})
这是我的模板:
<div ng-controller="ctrl">
<my-customer info="dan">
</my-customer>
</div>
为什么我的指令没有读取信息的属性?
答案 0 :(得分:1)
你是对的,$ scope.dan对象需要位于'ctrl'控制器范围内,并从isolate指令控制器范围中拉出。
app.controller('ctrl', function($scope) {
$scope.dan = { 'name': 'Dan', 'nationality': 'ESP' };
})
这适用于为&#34; = info&#34;
使用的getInfo设置的双向数据绑定方法答案 1 :(得分:0)
编码的方式是,期望ctrl控制器在其作用域上有一个名为“dan”的属性。如果您只是传入字符串'dan',则需要将指令更改为使用@而不是=
thing