在Angular.js中的$ scope对象中传递多个值

时间:2014-11-26 06:36:30

标签: angularjs

我是Angular.js的新手,想了解更多相关信息。 我刚刚创建了一个小项目并希望使用$ scope对象传递多个值。 但它运作不正常。

这就是我在做什么

function ListCtrl($scope, $http,Project) {
    $http.get('/project').success(function(data){
     str =data.result;
     var result= str.replace('http://','domainname');
     $scope.projects=data.rows;
     $scope.projects=data.result;
  });
}

在数据变量中,我得到行和结果。 而且我用$ scope传递了类似的内容。

任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:1)

试试这个,

$scope.projects = {};

$scope.projects.rows = data.rows;
$scope.projects.result = data.result;

答案 1 :(得分:1)

您的问题是,视图未被告知$scope.data变量的更改,因为该值在Promise的异步回调中被更改,该回调由$http.get()方法。

只需在$scope方法中包含$scope.$apply更改即可运行摘要循环:

$http.get('/project').success(function(data){
    $scope.$apply(function() {
        // Do scope changes here
    })
}

此外,您要将值$scope.projects分配两次,因此请更改:

$scope.projects = {};
$scope.projects.rows = data.rows;
$scope.projects.results = data.result;

或只是:

$scope.projects = data;

答案 2 :(得分:0)

这两个会相互覆盖。

$scope.projects=data.rows;
$scope.projects=data.result;

你想做的事情可能更像是这样。

$scope.projects = {};
$scope.projects.rows = data.rows;
$scope.projects.result = data.result;

然后在你的html中如果要显示这些,你可以使用ng-repeat来迭代它们并显示每个元素。你有使用HTML的HTML吗?

相关问题