我在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)
函数中的参数,但这也给了我一个未定义的。
这是什么原因以及如何解决这个问题?
答案 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>