2014-01-10 79 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