如何在页面加载时执行AngularJS控制器函数?

12 浏览
0 Comments

如何在页面加载时执行AngularJS控制器函数?

当前我有一个 Angular.js 页面,允许搜索并显示结果。用户点击搜索结果,然后点击返回按钮。我希望再次显示搜索结果,但我不知道如何触发搜索执行。以下是详细信息:

  • 我的 Angular.js 页面是一个搜索页面,带有搜索字段和搜索按钮。用户可以手动输入查询并按下按钮,然后会触发 ajax 查询并显示结果。我使用搜索项更新 URL。所有这些工作都很好。
  • 用户点击搜索结果并进入到另一个页面——这也很好。
  • 用户点击返回按钮,回到我的 Angular 搜索页面,并显示正确的 URL,包括搜索词。所有工作正常。
  • 我已经将搜索字段值绑定到 URL 中的搜索词,因此它包含预期的搜索词。所有工作都很好。

如何在不让用户按下“搜索”按钮的情况下执行搜索功能?如果是 jQuery,那么我会在 documentready 函数中执行一个函数。我看不到 Angular.js 的等效方式。

admin 更改状态以发布 2023年5月20日
0
0 Comments

试试这个吗?

$scope.$on('$viewContentLoaded', function() {
    //call it here
});

0
0 Comments

一方面,就像@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();

另外,你还可以看看ng-init指令。具体实现方法如下:

// register controller in html
// in controller
$scope.init = function () {
    // check if there is query in url
    // and fire search in case its value is not empty
};

但要注意,如Angular文档(自v1.2以来)所示,请不要使用ng-init。然而,在我看来,这取决于你的应用程序架构。

当我想将后端的值传递到Angular应用程序中时,我使用了ng-init


0