Duk*_*gal 355 onload angularjs
目前我有一个Angular.js页面,允许搜索和显示结果.用户单击搜索结果,然后单击后退按钮.我希望再次显示搜索结果,但我无法确定如何触发搜索执行.这是详细信息:
如何在用户不必按"搜索按钮"的情况下再次执行搜索功能?如果它是jquery,那么我将在documentready函数中执行一个函数.我看不到Angular.js的等价物.
Dmi*_*eev 425
一方面,正如@ Mark-Rajcok所说,你可以逃脱私人内在功能:
// at the bottom of your controller
var init = function () {
// check if there is query in url
// and fire search in case its value is not empty
};
// and fire it after definition
init();
Run Code Online (Sandbox Code Playgroud)
您还可以查看ng-init指令.实施将很像:
// register controller in html
<div data-ng-controller="myCtrl" data-ng-init="init()"></div>
// in controller
$scope.init = function () {
// check if there is query in url
// and fire search in case its value is not empty
};
Run Code Online (Sandbox Code Playgroud)
但要注意它,因为角度文档暗示(因为v1.2)不使用ng-init它.但是,它取决于您的应用程序的架构.
ng-init当我想将值从后端传递到角度应用程序时,我使用了:
<div data-ng-controller="myCtrl" data-ng-init="init('%some_backend_value%')"></div>
Run Code Online (Sandbox Code Playgroud)
hol*_*ple 136
试试这个?
$scope.$on('$viewContentLoaded', function() {
//call it here
});
Run Code Online (Sandbox Code Playgroud)
ada*_*101 59
我永远无法$viewContentLoaded为我工作,并且ng-init应该只用于ng-repeat(根据文档),并且如果代码依赖于尚未定义的元素,也直接在控制器中调用函数会导致错误.
这就是我的工作,它对我有用:
$scope.$on('$routeChangeSuccess', function () {
// do something
});
Run Code Online (Sandbox Code Playgroud)
除非你正在使用ui-router.那就是:
$scope.$on('$stateChangeSuccess', function () {
// do something
});
Run Code Online (Sandbox Code Playgroud)
小智 42
angular.element(document).ready(function () {
// your code here
});
Run Code Online (Sandbox Code Playgroud)
小智 30
Dimitri的/ Mark的解决方案对我不起作用,但是使用$ timeout函数似乎可以很好地确保代码仅在呈现标记后运行.
# Your controller, including $timeout
var $scope.init = function(){
//your code
}
$timeout($scope.init)
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你.
Cod*_*ide 27
如果要观察要更改的viewContentLoaded DOM对象然后执行某些操作,则可以执行此操作.使用$ scope.$ on也可以,但不同,特别是当你的路由有一个页面模式时.
$scope.$watch('$viewContentLoaded', function(){
// do something
});
Run Code Online (Sandbox Code Playgroud)
mcg*_*raw 19
你可以使用angular的$ window对象:
$window.onload = function(e) {
//your magic here
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
706083 次 |
| 最近记录: |