现在我们在调用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}}那样我可以看到所有条目。
答案 0 :(得分:5)
将控制器更改为
function MainCtrl($scope, DataService, $location) {
$scope.getActionList = function() {
DataService.getActions(function(results) {
$scope.$apply(function() {
$scope.actionList = results;
});
});
};
$scope.getActionList();
}
然后,如果您想重新加载actionList
来电getActionList()
答案 1 :(得分:0)
知道为什么会发生这种情况?
在第一个示例中,您只是在对象actionList
上定义名为$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>