我在我的html中有一個 <input type="text" ng-model="authorid">
,當用戶更新表單中的其他字段時它會自動更新。它在html中正常工作,但試圖從控制器訪問authorid,它始終未定義從控制器進入ng模型undefined
console.log($scope.authorid);
...有什麼想法嗎?
我在這裏嘗試了很多解決方案,沒有工作,特別是我不想添加另一種方法來設置它。請有任何想法嗎?
我在我的html中有一個 <input type="text" ng-model="authorid">
,當用戶更新表單中的其他字段時它會自動更新。它在html中正常工作,但試圖從控制器訪問authorid,它始終未定義從控制器進入ng模型undefined
console.log($scope.authorid);
...有什麼想法嗎?
我在這裏嘗試了很多解決方案,沒有工作,特別是我不想添加另一種方法來設置它。請有任何想法嗎?
花了好幾個小時試圖瞭解發生了什麼。我在這裏找到了答案: AngularJS update input manually does not trigger change in the model
基本上促使我寫了下面的代碼和固定它:
var e = document.getElementById("field");
e.value = "my updated value";
var $e = angular.element(e);
$e.triggerHandler('input');
感謝爲努力幫助以及
你應該遵循最佳做法,並使你的`authorid'爲一個object.property變量。
首先,定義在你的控制器,是這樣的:
$scope.form = {};
然後在你的HTML,這樣做:
<input type="text" ng-model="form.authorid">
這是因爲在AngularJS,小時候範圍通常prototypically繼承其父範圍。
我已經完成了上述評論,仍然無法獲得它的價值。 –
可能你應該發佈你的代碼。 –
請張貼@Fresheyeball並感謝大家你的代碼 –
你打破了'ng-model'中沒有***點***的黃金法則。這意味着它是一個對象,因此具有一個基元不具有的繼承。你可能會因爲這個而失去2種方式的綁定 – charlietfl
我試過這樣做也是做兩件事: '>'在我的控制下,我做了兩件事 '$ scope。 myform = {};' 'console.log($ scope.myform.authorid);' 仍然沒有定義.. –