2015-08-24 32 views
1

我在我的html中有一個 <input type="text" ng-model="authorid">,當用戶更新表單中的其他字段時它會自動更新。它在html中正常工作,但試圖從控制器訪問authorid,它始終未定義從控制器進入ng模型undefined

console.log($scope.authorid); 

...有什麼想法嗎?

我在這裏嘗試了很多解決方案,沒有工作,特別是我不想添加另一種方法來設置它。請有任何想法嗎?

+4

請張貼@Fresheyeball並感謝大家你的代碼 –

+0

你打破了'ng-model'中沒有***點***的黃金法則。這意味着它是一個對象,因此具有一個基元不具有的繼承。你可能會因爲這個而失去2種方式的綁定 – charlietfl

+0

我試過這樣做也是做兩件事: '>'在我的控制下,我做了兩件事 '$ scope。 myform = {};' 'console.log($ scope.myform.authorid);' 仍然沒有定義.. –

回答

1

花了好幾個小時試圖瞭解發生了什麼。我在這裏找到了答案: 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'); 

感謝爲努力幫助以及

0

你應該遵循最佳做法,並使你的`authorid'爲一個object.property變量。

首先,定義在你的控制器,是這樣的:

$scope.form = {}; 

然後在你的HTML,這樣做:

<input type="text" ng-model="form.authorid"> 

這是因爲在AngularJS,小時候範圍通常prototypically繼承其父範圍。

+0

我已經完成了上述評論,仍然無法獲得它的價值。 –

+0

可能你應該發佈你的代碼。 –