[英]Angular ng-model Input from rootScope
我只是遇到了一個簡單的問題。 我有一個帶有占位符“用戶名”的輸入字段。 如果選擇了一個User並因此在$ rootScope中可用,則顯示ng-model。
到目前為止工作正常...
input type="text" placeholder="Username..." ng-model="user.name + user.id"/>
視圖中的當前輸出:
Username12
我想成為的輸出是:
Username (12)
有誰知道如何實現這一目標?
提前致謝!
由於您可能想對<input>
元素的值做一些事情(否則使用另一種只讀方法),因此ng-model
應該代表一個簡單的變量名(不進行計算/串聯)。
為此,您應該使用$watch('user', ...
每次user
對象更改時生成更新的<input>
值。
HTML
<body ng-controller="MainCtrl">
<input type="text" placeholder="Username..." ng-model="userInput" />
</body>
JavaScript的
app.controller('MainCtrl', function($scope) {
$scope.user = {
name: "Marc",
id: 1
};
$scope.userInput = '';
// ...
$scope.$watch('user', function(user){
$scope.userInput = user.name + ' (' + user.id + ')';
});
});
如果要進行數據綁定,請使用ng-model。
在這里看起來您只想打印(而不是更新)這些值。
然后,我建議只使用帶有打印的簡單html標簽,而不是將數據(以錯誤的方式)包裝在輸入中。
例如,您可以對任何html元素執行類似普通綁定的操作:
<span ng-bind="user.name"></span>(<span ng-bind="user.id"></span>)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.