我正在学习角度。所以坚持从指令访问控制器范围。 $ scope.vojta 已填入控制器,我喜欢从指令打印。
<div ng-controller="Controller">
<my-customer ></my-customer>
</div>
angular.module('docsIsolationExample', [])
.controller('Controller', ['$scope', function($scope) {
//$scope.naomi = { name: 'Naomi', address: '1600 Amphitheatre' };
$scope.vojta = { name: 'Vojta', address: '3456 Somewhere Else' };
}])
.directive('myCustomer', function() {
return {
restrict: 'E',
/*
scope: {
customerInfo: '=info'
},
*/
template: 'Name: {{vojta.name}} Address: {{vojta.address}}'
};
});
没有姓名或地址正在打印。无法理解我犯错误的地方。寻找一些建议。这里是小提琴https://jsfiddle.net/tridip/3g9yddf5/
答案 0 :(得分:4)
由于customerInfo: '=info'
在隔离的指令范围内,您应该从info
属性(用作属性别名)传递值,以便customerInfo
范围变量可以使用它在指令内。
<my-customer info="vojta"></my-customer>
然后更改指令模板以使用已通过客户信息的customerInfo
。
template: 'Name: {{customerInfo.name}} Address: {{customerInfo.address}}'