发现 Dmitry Evseev 的回答非常有用。
案例 1:单独使用 angularJs:
要在页面加载时执行方法,您可以在视图中使用并在控制器中声明 init 方法,但根据 ng-init 上的 angular Docs,ng-init
不建议使用较重的函数:
可以滥用该指令在模板中添加不必要的逻辑量。ngInit 只有少数合适的用途,例如用于别名 ngRepeat 的特殊属性,如下面的演示所示;以及通过服务器端脚本注入数据。除了这几种情况,您应该使用控制器而不是 ngInit 来初始化作用域上的值。
HTML:
<div ng-controller="searchController()">
<!-- renaming view code here, including the search box and the buttons -->
</div>
控制器:
app.controller('SearchCtrl', function(){
var doSearch = function(keyword){
//Search code here
}
doSearch($routeParams.searchKeyword);
})
警告:不要将此控制器用于另一个意图不同的视图,因为它也会导致搜索方法在那里执行。
案例2:使用Ionic:
上面的代码可以工作,只要确保视图缓存在route.js
as中被禁用:
路由.js
.state('app', {
url : '/search',
cache : false, //disable caching of the view here
templateUrl : 'templates/search.html' ,
controller : 'SearchCtrl'
})
希望这可以帮助