2014-01-10 53 views
0

我有一个指令,模型没有像我想的那样更新。这里是我的html:角度模型没有更新 - Angular.js

 <div class="text-area-container"> 
     <textarea ng-model="chatText" ng-keyup="updateCount(chatText)"></textarea> 
     </div> 
    <input ng-disabled="disableCommentButton()" value="Comment" ng-click="addMessage(chatText)"/> 

正如你可以看到我有连接到<textarea>一个ng-model。我不知道这是否会影响任何内容,但我还附加了一个ng-keyup,该模型需要模型并查看其中包含多少个字符。最后一块是我有一个ng-disable对输入进行评估的功能。这里是我的我的指令的link功能:

link: function(scope) { 
    scope.chatText = ''; 

    scope.countRemaining = 500; 

    scope.updateCount = function(chatText) { 
     scope.chatText = chatText; 
     scope.countRemaining = scope.maxChatCount - chatText.length; 
    }; 

    scope.disableCommentButton = function() { 
     return _.isUndefined(scope.encounter) || _.isEmpty(scope.chatText); 
    }; 
    } 

的问题是,我scope.chatTextdisableCommentButton方法总是不确定的。我认为通过将模型附加到html中的元素上,我可以在范围上访问它。我在这里错过了什么?

回答

1

尝试...

scope.disableCommentButton = function() { 
    return _.isUndefined(this.encounter) || _.isEmpty(this.chatText); 
} 
+0

为什么工作? 'scope.encounter'正在工作,但'scope.chatText'不起作用。我不知道在文件前面定义的'scope.chatText'是否与它有任何关系。 – jhamm

+0

其范围在您的函数声明时是一个全局变量,它指的是过时的范围。在函数内引用这个指的是新的作用域对象。 – Jason

+0

因此,范围更改?范围何时会过期? – jhamm