2

我被这个困住了。

我有一个使用 html5 历史 API 的搜索页面。

所以如果我搜索“html5”,我的网址是“/search/html5”。

现在我希望我的应用程序处理页面刷新。当我按“F5”时,我想看到我的应用程序用“html5”填充文本输入并触发单击按钮以启动搜索方法。

    <form>
        <input type="text" ng-model="searchText" />
        <button class="btn btn-primary" ng-disabled="!searchText" ng-click="search()" >search</button>
    </form>

我真的很感激一些帮助。

UPD:我的意思是我需要手动(在角度的控制器之外)做类似的事情

$scope.searchText = 'html5';
$scope.search();

但我不知道如何访问 $scope。

4

3 回答 3

4

还有另一个很好的解决方案。

我喜欢它,因为它是原生的并且不需要任何 3rd 方库。

只需将其添加到您的 html 中的某个位置(同样,我使用 ejs 进行服务器模板):

<p ng-init="searchText = '<%= searchText %>'; search();"></p>

这种方式比https://stackoverflow.com/a/13232922/801426更好,因为使用后一个输入的值在搜索完成之前不会更新,而且它是一个 ajax 调用,所以需要一些时间。

于 2012-11-07T05:39:42.417 回答
1

http://plnkr.co/edit/VT5ss4

这可能是一种方法。它正在使用 Angular 的路由功能。 $routeParams在这种情况下,将为您提供访问 searchText 的方法。

于 2012-11-05T09:10:20.713 回答
1

我找到了解决方案(我使用 ejs 进行服务器模板):

<script type="text/javascript">
    (function( $ )
    {
        "use strict";
        $(document).ready(function (){
            var $scope = angular.element($('#search-text')).scope();
            $scope.searchText = "<%= searchText %>";
            $scope.search();
        });
    }( jQuery ));
</script>

感谢这个问题 -从遗留代码调用 Angular JS

于 2012-11-05T13:15:15.067 回答