我甚至不知道在这一点上要问什么(编辑:我已经被告知我的问题不清楚"为什么指令看到的属性没有通过对它"),我以为我明白了。似乎不能在指令中使用父控制器的属性(是的,它们确实需要是可选的,但我不认为这是问题)。
我以为我创建了一个隔离范围:scope: {myVar: "=?"}
然后只需创建一个myVar属性并将其指向" source"在父控制器上。我究竟做错了什么?
小提琴:http://jsfiddle.net/x0mukxdd/
HTML:
<my-directive isDisabledDirectiveVar = "isDisabledOuterVar" insideDirectiveTestString = "someTestString" />
JS:
var app = angular.module("myApp", []);
app.controller("myController", function ($scope) {
$scope.isDisabledOuterVar = true;
$scope.someTestString = 'blahblah I am a astring';
});
app.directive("myDirective", function () {
return {
restrict: 'E',
scope: {
isDisabledDirectiveVar: '=?',
insideDirectiveTestString: '=?'
},
template: '<input type = "text" ng-disabled= "isDisabledDirectiveVar"' +
'value = "{{insideTestString}}" ></input>'
};
});
旁注,参考文章here.
答案 0 :(得分:3)
Angular在javascript中使用camelCase,但是在HTML中将其转换为破折号。
html:<my-directive is-disabled-directive-var="yourVar" />
javascript:scope: { isDisabledDirectiveVar: '=?' }