2012-11-05 99 views
2

我一直堅持這一點。在angularjs中設置初始值並觸發點擊應用程序初始值

我有一個使用html5 history 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(); 

但我不能讓我怎麼能有機會獲得$範圍。

回答

4

有一個爲另一個很好的解決方案。

我喜歡它,因爲它是本地的,不需要任何第三方庫。

就在某個地方在HTML中添加這(再次,我使用EJS服務器模板):

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

這樣總比那https://stackoverflow.com/a/13232922/801426因爲在使用後者輸入的值不更新直到搜索結束,這是一個Ajax調用,所以需要一些時間。

1

http://plnkr.co/edit/VT5ss4

這可以做到這一點的方法之一。它使用角度的路由功能。 $routeParams將爲您提供在這種情況下訪問searchText的方式。

+0

好吧,顯然我沒有足夠的解釋。 問題是讓angularjs設置輸入文本並模擬點擊按鈕。 所以當我輸入url「/ search/html5」時,它將等於輸入text =「html5」,然後單擊搜索按鈕 – bullgare

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> 

多虧了這個問題 - Call Angular JS from legacy code