AngularJS:将数据传递给模板的最佳实践

时间:2014-11-03 15:45:32

标签: angularjs angularjs-service angularjs-controller

我有以下服务功能,它将返回我要显示的数据(注意,数据可以随时更改):

myService.getData(); // Returns an array

我必须使用服务,因为我也需要其他控制器/服务中的这些数据。

现在我不确定,最好的实践是什么,也在模板中显示数据。我所做的是:

示例1

<li ng-repeat="item in myService.getData()">
    {{item.name}}
</li>

它的工作正常,但这是最佳做法吗?

我也尝试过:

示例2

// In my controller:
$scope.data = myService.getData();

// In the template
<li ng-repeat="item in data"  ng-controller="myCtrl">
    {{item.name}}
</li>

这不起作用(在页面加载时,数据会进入$ scope.data。任何更新都会被忽略)。我想我可以使用$ watch(来看myService.getData())。但我觉得这样慢。

你怎么看?我可以在模板中调用服务(例如示例1)吗?

非常感谢!

1 个答案:

答案 0 :(得分:0)

使用它作为第二个例子(最佳实践):

// In my controller:
$scope.service= myService

// In the template
<li ng-repeat="item in service.getData()"  ng-controller="myCtrl">
    {{item.name}}
</li>