我将翻译以下内容:我正在使用AngularJS编写一个具有双向绑定的隔离作用域指令。然而,我似乎无法使双向绑定起作用。无论我做什么,隔离作用域上的populate属性始终是未定义的(尽管该属性存在),而不是被绑定到它应该绑定的值。
HTML:
HTML:
<html>
<body ng-app="MyApp">
<div ng-controller="MyController">
{{data.dataProp}} <!-- demonstrates that data.dataProp is defined -->
<scope-fail data-source="data.dataProp"></scope-fail>
</div>
</body>
</html>
JS:
angular.module("MyApp", [])
.controller('MyController', function ($scope) {
$scope.data = {
dataProp: 'Some Data'
}
})
.directive('scopeFail', function ($window) {
return {
restrict: 'E',
scope: {
populate: '=dataSource'
},
template: '<div>Value: {{populate}}</div>',
link: function (scope, element, attrs) {
console.log('Scope property:', scope.populate); //prints Scope property: undefined
}
};
})
使用上述代码的CodePen: CodePen链接
那么为什么CodePen没有显示“Value:Some Data”?我认为应该发生的是populate
绑定到自定义元素上的data-source
的值,该值在控制器作用域中是data.dataProp
,即Some Data
。
我在哪里出错了/如何使隔离范围与数据源属性具有双向绑定?
非常感谢
data-
开头。我会在明天标记此答案为正确的。 - cryptopi