我总是使用ng-init="controllerFunction()"
从服务器获取数据并将其显示在表格,图表或其他任何内容上,并且需要在每次加载页面时调用它。
现在使用ng-init
正在完成这项工作,但这是最佳做法吗?
答案 0 :(得分:1)
ng-init
主要用于将数据传递给init方法,例如razor数据(ng-init="someControllerFunction(@Model.ServerSideData)
)。如果您没有传递任何数据,您可以直接在控制器中执行:
function myCtrl($scope) {
function myInitFunction(){
// fetch data etc.
}
myInitFunction();
}
这样就不会暴露init函数,而是很好地封装在你的控制器中。
答案 1 :(得分:0)
The documentation明确指出(在一个大的红色警报中)ngInit
只有几个重点用例,不应在这些情景之外使用
可以滥用此指令来添加不必要的逻辑量 你的模板。 ngInit只有少数适当的用途,例如 至于别名ngRepeat的特殊属性,如演示中所示 下面;并通过服务器端脚本注入数据。除了这些 在少数情况下,您应该使用控制器而不是ngInit来初始化 范围内的值。