双向绑定指令范围的对象

时间:2015-01-31 17:50:03

标签: angularjs angularjs-directive angularjs-scope

我正在尝试创建一个与传递的对象具有双向绑定的指令:

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”设置为字符串,输入框也是空的。

我做错了什么?

1 个答案:

答案 0 :(得分:2)

我可能找到了你的问题:

lmdata可能未在父范围内设置。这意味着当您尝试设置scope.lmdata.displayValue时,您尝试设置未定义的范围变量。

要解决此问题,您必须在父范围内设置lmdata,如下所示:

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

我在plnkr中创建了一个工作示例(为了方便起见,我只将限制改为&#39; E&#39; here