我有一個文本框,一個HTML頁面,我使用的是位AngularJS來顯示剩餘的字符個數 -AngularJS不使用jQuery顯示HTML
<div ng-app="" class="container-fluid">
<form class="form" role="form">
<div class="form-group">
@Html.TextArea("Description", htmlAttributes: new { @class = "form-control", placeholder = "Description, ng_model = "descMessage" })
<div>
<label>{{ 500 - descMessage.length }}</label>
</div>
</div>
</form>
</div>
能正常工作時,我只是顯示它作爲局部視圖。我得到正確的字符數剩餘。
@Html.Partial("~/Views/Desc/Index.cshtml")
但是,當我通過JQuery顯示它時不起作用。它的字符總是顯示爲 - {{ 500 - descMessage.length }}
,而不是字符。
var options = {
url: "/Desc/Index",
type: "get",
dataType: "html"
};
$.ajax(options).done(function (data) {
var $target = $("#displayform");
$target.html(data);
});
AngularJS表達應該在這裏進行評估。爲什麼這不會發生?我經歷過很多JQuery,但第一次使用AngularJS。我怎樣才能解決這個問題?
我真的認爲有一個更簡單的方法來做到這一點,至於我看來Angular只是失去了綁定,我只需要重新調整它(加載html後可能)。我可以輕鬆構建一個jQuery計數器,但不希望Angular對我這麼好。無論如何,將嘗試實施您的解決方案,看看它是否有效。 – Sam 2015-02-08 15:18:45
問題在於Angular不知道值是否已經改變,因爲它發生在應用程序範圍之外。我剛剛處理了一些類似的問題。您可以通過獲取Angular模塊的句柄來調用jQuery代碼中的更新 - 我看到了一些解決方案,但它們都比使用控制器或指令和純Angular更復雜。使用熟悉的jQuery代碼保存的一點點在將兩者結合在一起以處理已綁定到Angular的元素上的DOM「內容」時很快就會丟失。 – 2015-02-08 16:20:51
試過但它不工作。 – Sam 2015-02-08 18:50:56