Javascript 选定选项更改时,模型未更新

Javascript 选定选项更改时,模型未更新,javascript,angularjs,angularjs-scope,angularjs-ng-model,Javascript,Angularjs,Angularjs Scope,Angularjs Ng Model,我的Angular.js项目具有绑定到模型的select元素。加载时会选择适当的选项,但是选择另一个选项似乎不会更新模型,至少不会永久更新。但是,如果我以编程方式更改模型,则结果与预期一致 控制员: angular.module('myApp.controllers').controller('HomeCtrl',function($scope){ $scope.month = "08"; // this default value is selected on-load as expect

我的Angular.js项目具有绑定到模型的select元素。加载时会选择适当的选项,但是选择另一个选项似乎不会更新模型,至少不会永久更新。但是,如果我以编程方式更改模型,则结果与预期一致

控制员:

angular.module('myApp.controllers').controller('HomeCtrl',function($scope){
  $scope.month = "08"; // this default value is selected on-load as expected
  $scope.updateMonth = function() {
   console.log($scope.month); // this shows the original value not the newly selected value
   // a http request and other things happen here...
  };
  $scope.logMonth = function(month) {
   console.log(month); // this shows the newly selected value as expected
  }
 });
模板:

<select ng-model="month" ng-change="logMonth(month);">
 <option value="07">07</option>
 <option value="08">08</option>
 <option value="09">09</option>
</select>
<button ng-click="updateMonth();">Update Month</button>

听起来像是角度范围问题。作用域继承适用于作用域上的对象,但不适用于基本体。尝试将$scope.month=08更改为$scope.month={selected:08}。然后在控制器中,将html更改为以下内容


在模板中,logMonthmonth;存在,但在$scope.logMonth中没有该参数…当您设置为just ng change=logMonth时会发生什么?控制台中出现错误?刚刚创建了一个,我无法复制您的问题。额外的};在代码中,这是复制粘贴的吗?ZackMacomber和Akis_Tfs道歉,看起来我在编辑一些代码时遗漏了一些东西,以便于大家阅读,我只是更新了它。Lex感谢您的测试,这可能表明它与周围的代码有关。这就成功了。我的文本输入和其他表单元素使用$rootScope,它们的行为与预期一致,因此我假设$scope也会使用。我必须对细节做更多的阅读,因为我对Angular.js比较陌生。再次感谢!