我试图通过点击指令模板中的编辑锚来改变指令内输入的ng-model。
函数f()假设访问外部控制器并将editableValue绑定到名称或公司,以便我可以通过输入更改它。
输入确实显示人员值但不绑定它。
<p edit="person.name"></p>
<p edit="person.company"></p>
<input ng-model="editableValue">
main.controller('editsCtrl', function($scope){
$scope.setToEdit = function(val){
$scope.editableValue = val;
}
});
main.directive('edit', function(){
return{
template:'{{edit}}<a ng-click="f()"> Edit </a>',
restrict:'A',
scope:{
edit:"="
},
replace:false,
link: function(scope, element, attrs, ctrl) {
scope.f = function(){
scope.$parent.setToEdit(scope.edit);
}
}
}
})
即使我这样做,它没有绑定,只传递值:
scope.$parent.editableValue = scope.$parent.person.name;
对于新手来说,这有点令人困惑,我缺少什么?
答案 0 :(得分:0)
范围分配失败:
scope.f = function(){
scope.$parent.setToEdit(scope.edit);
}
因为你在这里限制范围:
scope:{
edit:"="
},
编辑是父将看到的唯一范围,因为您已使用'='设置了双向数据绑定