1

现在我们在调用 DataService (Parse) 的控制器中面临一个问题,问题是这段代码不起作用:

    function MainCtrl($scope, DataService, $location)
{

    $scope.actionList = function() {

            // Call the service and fetch the list of signatures that match the given action ID
            DataService.getActions(function (results) {
                $scope.$apply(function () {
                    // Apply the results to the signatureList model so it will refresh the table in the view
                    $scope.actionList = results;
                });
            });

    };
}

我在 DataService 行中放置了一个断点,但它没有被命中,但是如果我以这种方式实现 Ctrl ,它确实会被调用并且它可以工作!!:

function MainCtrl($scope, DataService, $location)
{            

                // Call the service and fetch the list of signatures that match the given action ID
                DataService.getActions(function (results) {
                    $scope.$apply(function () {
                        // Apply the results to the signatureList model so it will refresh the table in the view
                        $scope.actionList = results;
                    });
                });          

    }

知道为什么会这样吗?

除此之外,一旦工作(使用第二个实现)我想显示活动的属性,如果我尝试像这样获取属性它不起作用:

<div id="wrapper"><div id="scroller">
<div ng-controller="MainCtrl">
    <ul id="thelist">
        <li ng-repeat="action in actionList">{{action.get('Action')}}</li>  
    </ul>
</div> 
</div></div>

但是,如果我尝试获取像 {{action}} 这样的整个对象,我实际上可以看到所有条目。

4

2 回答 2

5

将控制器更改为

function MainCtrl($scope, DataService, $location) {

    $scope.getActionList = function() {
        DataService.getActions(function(results) {
                    $scope.$apply(function() {
                                $scope.actionList = results;
                            });
                });

    };

    $scope.getActionList();
}

然后,如果您想重新加载actionList呼叫getActionList()

于 2013-03-23T11:27:42.317 回答
0

知道为什么会这样吗?

在您的第一个示例中,您只是定义了一个名为actionListobject的函数$scope。定义一个函数不会执行它(参见@Arun 的答案)。

要在视图中显示数据,您可以使用普通的 JavaScript 点表示法。如果一个action对象看起来像这样:

{ prop1: 'property 1', prop2: [1, 2], prop3: { name: 'Javito'} }

您可以按如下方式编写视图/HTML:

<ul id="thelist">
   <li ng-repeat="action in actionList">
      prop1: {{action.prop1}}<br>
      prop2: {{action.prop2[0]}} {{ action.prop2[1] }}<br>  <!-- or use another ng-repeat here -->
      prop3.name: {{action.prop3.name}}
   </li>  
</ul>
于 2013-03-23T21:27:19.673 回答