如何在angular.js中选择更改的参数中设置函数或获取值

时间:2015-11-23 06:54:43

标签: angularjs angularjs-scope

我是动物的新手,想从选择选项中获取更改值,并希望更新特定ID的状态。我已经设置了一些代码,但这不起作用。你能帮助我吗。 获取数据并获取数据,然后设置一个选择框

<select ng-model="newStatus" ng-change="changeNewStatus(data.id, data.message_status)">
                      <option value="1" ng-selected="data.message_status == 1">New</option>
                      <option value="2" ng-selected="data.message_status == 2">Closed</option>
                    </select>

现在我想在这里打印{{selectedResult}} 下面是我想要调用此功能的控制器

app.controller('MessageFetchGrid', function ($scope, $http, $timeout) {
$scope.changeNewStatus = function(msgId, msgStatus){
            $scope.selectedResult = "msg-id="+msgId+" status= "+msgStatus;
    }

});  

这是我的完整代码

app.filter('startFrom', function() {
return function(input, start) {
    if(input) {
        start = +start; //parse to int
        return input.slice(start);
    }
    return [];
}

});

app.controller('MessageFetchGrid', function ($scope, $http, $timeout) {
$http.get('api/v1/loadMessage.php').success(function(data){
    $scope.list = data;
    $scope.currentPage = 1; //current page
    $scope.entryLimit = 25; //max no of items to display in a page
    $scope.filteredItems = $scope.list.length; //Initially for no filter  
    $scope.totalItems = $scope.list.length;
});
$scope.setPage = function(pageNo) {
    $scope.currentPage = pageNo;
};
$scope.filter = function() {
    $timeout(function() { 
        $scope.filteredItems = $scope.filtered.length;
    }, 10);
};
$scope.sort_by = function(predicate) {
    $scope.predicate = predicate;
    $scope.reverse = !$scope.reverse;
};  
$scope.changeNewStatus = function(msgId, msgStatus){
        $scope.selectedResult = "msg-id="+msgId+" status= "+msgStatus;
}   

});

1 个答案:

答案 0 :(得分:0)

    you can use ng-options directive :
partial:
<div ng-app="test">
  <div ng-controller="TestController">
    <select ng-options="item as item.label for item in items track by item.id" ng-model="selected">
      <option value="">Select</optipn>
    </select>
    <span>{{selected}}</span>
  </div>
</div>

js:
var app = angular.module("test", []);
app.controller("TestController", ["$scope", function($scope) {
  $scope.items = [{
    id: 1,
    label: 'aLabel'
  }, {
    id: 2,
    label: 'bLabel'
  }];
}]);
    example 
    http://codepen.io/anon/pen/MaRMPz