Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我无法在角度选择中显示该值_Javascript_Angularjs - Fatal编程技术网

Javascript 我无法在角度选择中显示该值

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

这是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="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 } :(
});