2015-01-31 191 views
0

我试图创建一个具有双向绑定到传递的对象的指令范围的对象:双向绑定指令

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

看起来不错 – pixelbits 2015-01-31 21:04:07

回答

2

我可能已经找到了你的问题:

lmdata很可能无法在你的父母范围设置。这意味着当您尝试设置scope.lmdata.displayValue时,您尝试设置未定义的作用域变量。

为了解决这个问题,你必须设定lmdata在父范围,像这样:

$scope.lmdata = {'displayValue':''}; 

我已经创造了plnkr工作示例(我只改变了限制,为方便“E”)here

+1

这似乎是正确的答案,但只是挑剔 - 这不是没有设置“lmdata.displayValue”(这很好)。这就是'lmdata'没有设置,并且它不能设置'undefined'的'displayValue'属性。 – 2015-01-31 22:43:50

+0

非常感谢这是问题所在。真棒! – JensOlsen112 2015-02-01 13:55:37