发现Dmitry Evseev的答案很有用。
情况1:单独使用angularJs:
要在页面加载时执行方法,您可以ng-init
在视图中使用并在controller中声明init方法,但根据ng-init上的angular Docs的建议,建议不要使用更重的功能:
可以滥用此伪指令在模板中添加不必要的逻辑量。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中禁用了视图缓存:
route.js
.state('app', {
url : '/search',
cache : false, //disable caching of the view here
templateUrl : 'templates/search.html' ,
controller : 'SearchCtrl'
})
希望这可以帮助
$routepProvider
吗?使用它连接到您的应用程序中的服务,该服务为搜索结果提供数据。不要document.ready
像使用jQuery 那样来思考。在不掌握当前搜索方式的情况下很难提供很多帮助