来自select的ng-model未定义

时间:2017-08-30 13:07:44

标签: javascript angularjs

我在html中有一个选择框,其中包含一些从ng-repeat生成的选项。

<select ng-model="pageId" ng-change="setFacebookPage()">
    <option ng-repeat="page in pages" ng-value="page.id"> {{page.name}}</option>
</select>

有效。值和选项显示正确。但是我想在我的函数setFacebookPage()中获取pageId的值以及它出错的地方,因为在控制器中未定义pageId!

$scope.setFacebookPage = function(){
    console.log("setFacebookPage", $scope.pageId);
}

但是当我更改pageId的值时,我可以通过{{pageId}}看到它的值。

我试图将它的值作为setFacebookPage(pageId)函数中的参数,但这也给了我一个未定义的。

这是什么原因以及如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

您的代码中存在小错误。

  • 使用select元素
  • 不允许使用属性之间的逗号

因此,请将您的代码更新为以下

 <select ng-model="pageId" ng-change="setFacebookPage()">
     <option ng-repeat="page in pages" ng-value="page.id"> {{page.name}}</option>
 </select>

您可以调整here

答案 1 :(得分:0)

我认为你需要

 <select ng-model="pageId" ng-change="setFacebookPage()">
      <option ng-repeat="page in pages" ng-value="page.id"> {{page.name}}</option>
 </select>

而不是

<input type="select" ng-model="pageId", ng-change="setFacebookPage()">
    <option ng-repeat="page in pages" ng-value="page.id"> {{page.name}}</option>

<强>样本

var app = angular.module('demo', []);

app.controller('myCtrl', function($scope) {
    $scope.pages = [{"id" : 1, "name" : "sachin"}, {"id" : 2, "name" : "sourav"}];
  $scope.setFacebookPage = function(){
    console.log( $scope.pageId);
}


});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

  <body ng-app="demo" ng-controller="myCtrl">
    <select ng-model="pageId" ng-change="setFacebookPage()">
      <option ng-repeat="page in pages" ng-value="page.id"> {{page.name}}</option>
    </select>
  </body>