我正在尝试创建一个与传递的对象具有双向绑定的指令:
angular.module('app').directive('lmDataBox', function () {
return {
restrict: 'A',
scope: {
lmdata: '=',
},
template: '<input type="text" ng-model="lmdata.displayValue">',
link: function link(scope, element, attrs) {
scope.lmdata.displayValue = 'testvalue';
}
};
但是,即使我将“displayValue”设置为字符串,输入框也是空的。
我做错了什么?
答案 0 :(得分:2)
我可能找到了你的问题:
lmdata可能未在父范围内设置。这意味着当您尝试设置scope.lmdata.displayValue时,您尝试设置未定义的范围变量。
要解决此问题,您必须在父范围内设置lmdata,如下所示:
$scope.lmdata = {'displayValue':''};
我在plnkr中创建了一个工作示例(为了方便起见,我只将限制改为&#39; E&#39; here