无法设置后期成功的下拉值

时间:2016-06-12 05:33:34

标签: angularjs

我是角色新手,我正在创建一个编辑页面,我通过post上的成功回调加载数据。但我的下拉值未加载,而我的文本值正常。所有收到的数据都很好,我不知道为什么下拉值没有得到设定?

    $http.post('article/get-article.php',{id: id})
.success(function(response){
    $scope.article = response[0];
  });

//My category drop down html
<select class="form-control"  name="category" ng-model="article.category" ng-options ="art.id as art.title for art in categories"  required >
        </select>

修改 我附上完整的控制器代码

myApp.controller('editArticle', ['$scope', '$http','$routeParams', 'editArt',function($scope,$http, $routeParams, editArt){
$scope.article = {};
$scope.statusList = [{title: 'New', id: 1, role: "Author"},{title: 'Approved', id: 2, role: "Admin"},{title: 'Rejected', id: 3, role: "Admin"}];
$scope.categories = [{title: 'Cricket',id: 1},{title: 'Football',id: 2 },{title: 'Tennis',id: 3},{title: 'Golf',id: 4,}];

var id = $routeParams.id;
article = "";
//$scope.article = editArt.getData('article/get-article.php',{id: id});
$http.post('article/get-article.php',{id: id})
.then(function(response){
    $scope.article = response.data[0];
    //$scope.article.category = response.data[0].category;
    console.log(response.data);
  });
}]);

4 个答案:

答案 0 :(得分:0)

您的代码中有两个明显的问题可能导致问题:

  1. 您正在将response直接分配给范围变量。 $http调用中的响应数据已被换行,实际数据可用response.data代替response。因此,您应该将response替换为response.data

    $http.post('article/get-article.php',{id: id})
      .then(function(response){
        $scope.article = response.data[0];
      });
    
  2. 您的类别似乎未在HTML中设置

  3. 您案件中最可能的原因似乎是#1以上

答案 1 :(得分:0)

所以编辑应该是这样的。

1)使用$ http get而不是post。将Id传递给它并获得响应。 (在每个页面上加载get调用,以便获得更新的数据)

2)你的HTML是正确的。但是我没有看到你发布任何数据。你需要使用get in edit case

发布$ scope.article对象以获取它的更新值

答案 2 :(得分:0)

请参阅下面的plunker代码。

https://plnkr.co/edit/HSAJc1kcaPr2YAdZXQzy?p=preview

根据提供的html选项,只有在ng-model article.category具有id值时才会设置。

$scope.article.category = '1';

检查您的回答并正确分配ng-model

答案 3 :(得分:0)

  

@Deep注释检查类别是字符串还是数字是否完成了技巧

$scope.article.status = parseInt(response.data[0].status);
$scope.article.category = parseInt(response.data[0].category);

谢谢大家。