2015-01-31 185 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