为什么我的 ng-model 没有更新
My ng-model is not getting updated why
大家好,这是我的代码,它根本不是 运行 我无法理解,我只是想了解为什么它不是 运行
http://plnkr.co/edit/vvv3aavAopBhXlc1miUI
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope) {
$scope.user=$scope.name;
console.log($scope);
});
这一行是错误的:
$scope.user=$scope.name;
您正在尝试从未定义的 属性(名称)
中为您的范围(用户)分配一个 属性 的值
我认为你应该使用这种方法
app.controller('MainCtrl', function($scope) {
$scope.user="user"
$scope.name="name";
console.log($scope);
});
出于演示目的,这将在您的输入字段中对 'user' 和 'name' 进行硬编码,但如果您尝试捕获用户输入的值,您可能会使用点击按钮处理程序,在处理程序函数中,您可以访问范围内的用户和名称值以进行进一步处理,例如通过 $http
提交到服务器
据我了解,当您在第一个更新字段中键入内容时,您希望第二个更新字段得到更新。
为什么现在不工作了?
目前,当控制器在启动时加载(未定义)时,您仅将 $scope.name 的值分配给 $scope.user 。您没有观察该值并在它更改时将其分配给 $scope.user,因此 $scope.user 的值不会更新。
关于如何使其工作的一些选项
您可以使用 ngChange 指令
在你的HTML中:
<input type="text" ng-model="name" ng-change="updateUser()">
<input type="text" ng-model="user">
在你的控制器中:
$scope.updateUser = function() {
$scope.user=$scope.name; }
或者(取决于您要实现的目标),您可以为它们提供相同的 ng-model:
<input type="text" ng-model="name">
<input type="text" ng-model="name">
大家好,这是我的代码,它根本不是 运行 我无法理解,我只是想了解为什么它不是 运行 http://plnkr.co/edit/vvv3aavAopBhXlc1miUI
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope) {
$scope.user=$scope.name;
console.log($scope);
});
这一行是错误的:
$scope.user=$scope.name;
您正在尝试从未定义的 属性(名称)
中为您的范围(用户)分配一个 属性 的值我认为你应该使用这种方法
app.controller('MainCtrl', function($scope) {
$scope.user="user"
$scope.name="name";
console.log($scope);
});
出于演示目的,这将在您的输入字段中对 'user' 和 'name' 进行硬编码,但如果您尝试捕获用户输入的值,您可能会使用点击按钮处理程序,在处理程序函数中,您可以访问范围内的用户和名称值以进行进一步处理,例如通过 $http
提交到服务器据我了解,当您在第一个更新字段中键入内容时,您希望第二个更新字段得到更新。
为什么现在不工作了? 目前,当控制器在启动时加载(未定义)时,您仅将 $scope.name 的值分配给 $scope.user 。您没有观察该值并在它更改时将其分配给 $scope.user,因此 $scope.user 的值不会更新。
关于如何使其工作的一些选项
您可以使用 ngChange 指令
在你的HTML中:
<input type="text" ng-model="name" ng-change="updateUser()"> <input type="text" ng-model="user">
在你的控制器中:
$scope.updateUser = function() { $scope.user=$scope.name; }
或者(取决于您要实现的目标),您可以为它们提供相同的 ng-model:
<input type="text" ng-model="name"> <input type="text" ng-model="name">