Javascript 我无法在角度选择中显示该值
这是HTML的代码:Javascript 我无法在角度选择中显示该值,javascript,angularjs,Javascript,Angularjs,这是HTML的代码: <div ng-controller="SelectCtrl"> <p>selected item is : {{selectedItem}}</p> <p> age of selected item is : {{selectedItem.age}} </p> <select ng-model="selectedItem" ng-options="it
<div ng-controller="SelectCtrl">
<p>selected item is : {{selectedItem}}</p>
<p> age of selected item is : {{selectedItem.age}} </p>
<select ng-model="selectedItem" ng-options="item.name for item in items">
</select>
</div>
我想在控制器中显示选定的值,但显然它是未定义的
正确的方法是什么<代码>$scope。尝试记录其值时,未在作用域上定义selectedItem。当用户通过在
输入框中选择一个元素为属性赋值时,将识别selectedItem
未定义并创建它
使用$watch
记录值:
console.log($scope.selectedItem); // undefined
$scope.selectedItem = 'someDefaultValue';
console.log($scope.selectedItem); // 'someDefaultValue'
$scope.$watch('selectedItem', function(newValue) {
console.log(newValue); // whatever `item.name` the user has selected
});
如果要在UI中显示
选择editem
,或在加载页面时使用控制台.log
。您应该在控制器中初始化selectedItem
值
比如:
是不是很快就会启动console.log?在它被选中之前?尝试将其添加到单击事件中,如按钮?我想独立返回值,以便在控制器上执行其他操作。还有其他想法吗?你说的“独立”是什么意思?一旦
$scope.selectedItem
有一个值,它就可以在自己和子$scope
s中的任何位置被引用。我希望每次更改select的值时都会更新该值。我总是在其他操作中使用新值;每次我在视图中更改select时都会更新“我希望每次更改select的值时都会更新该值”,这是ng model
指令的性质。我给出的示例将console.log$scope.selectedItem
的值在每次更改时更新。这很好,但我希望在每次更改select的值时更新该值。我该怎么办?更改所选列表项时,会自动更改您的selectedItem
值。例如:当从列表项中选择两个时,您的selectedItem
值将为{name:'two',age:27}
console.log($scope.selectedItem); // undefined
$scope.selectedItem = 'someDefaultValue';
console.log($scope.selectedItem); // 'someDefaultValue'
$scope.$watch('selectedItem', function(newValue) {
console.log(newValue); // whatever `item.name` the user has selected
});
var app = angular.module('myApp', []);
app.controller('SelectCtrl', function($scope) {
$scope.items = [{name: 'one', age: 30 },{ name: 'two', age: 27 },{ name: 'three', age: 50 }];
$scope.selectedItem = $scope.items[0];
console.log($scope.selectedItem); //this is {name: 'one', age: 30 } :(
});