为什么我的 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-change (Plunkr)

或者(取决于您要实现的目标),您可以为它们提供相同的 ng-model:

<input type="text" ng-model="name">
<input type="text" ng-model="name">

same ng-model (Plunkr)