javascript
  • angularjs
  • 2015-10-31 35 views 0 likes 
    0

    我使用ng-clickng-view路由我div id= "listings"顯示不同類型的手機上市,如iphone 4iphone 5nexus 4nexus 5nexus 6lg g3等相同的名稱找到具體的控制器。NG-路線閱讀的鏈接,並與

    這是我的Plunkr

    <div ng-repeat = 'breakdown in selected.breakdowns' ng-href = '#{{breakdown}}'> 
    
        {{breakdown}} 
    
    </div> 
    

    在我routeProvider:

    .when('/', { 
        controller : 'home-ctrl', 
    }) 
    .when('/nexus_4, { 
        controller : 'nexus_4-ctrl', 
        templateUrl : 'listings.html', 
    }) 
    

    等。但這似乎很乏味。而不是單獨做每個應用程序,有沒有方法讓應用程序讀取URL,例如mywebsite.com/nexus_5,然後搜索名爲nexus_5-ctrl的控制器文件?

    謝謝!

    +0

    是否有必要爲每部手機使用不同的控制器?我想你可以在你的控制器中使用routeParam來相應地加載值。 [https://docs.angularjs.org/api/ngRoute/service/$routeParams –

    +0

    @RaghuVenmarathoor這只是一個例子,但基本上我的目標是讓列表頁面顯示所有選擇的電話以供銷售我的地盤。我對Angular不太瞭解,但是你認爲我可以使用routeParam嗎?將會有Map API和一些firebase資料的調用。 –

    回答

    1

    根據我的說法,他們沒有任何方法將動態控制器綁定到任何路由。您必須爲每個可能的狀態創建路線。是的,您可以動態加載您的控制器文件或使用Lazy load按需發表。我在項目中使用了相同的功能,並且與我的工作很好。

    這是我的代碼片段,我如何做到這一點。

    resolve : { 
         loadSummerNote:function($ocLazyLoad){ 
          return $ocLazyLoad.load({ 
            name:"summernote", 
            files: ['/bower_components/summernote/dist/summernote.css','/bower_components/angular-summernote/dist/angular-summernote.min.js','/bower_components/summernote/dist/summernote.min.js'] 
           }) 
         }, 
         loadUploadFile:function($ocLazyLoad,loadSummerNote){ 
          return $ocLazyLoad.load({ 
            name: 'ngFileUpload', 
            files: ['/bower_components/ng-file-upload/ng-file-upload-shim.min.js','/bower_components/ng-file-upload/ng-file-upload.min.js'] 
           }) 
         }, 
         currentDomain : function (Domain, $stateParams,loadUploadFile,User){ 
         return Domain.getDomain(); 
         } 
        }, 
        controller : "domain" 
    

    將所有必需的文件加載到resolve塊中,以便在加載控制器之前必須加載所有依賴項。

    1. 對此的另一個解決方案是使用角度UI-ROUTER。 ui-路由器支持單一狀態下的多個視圖。所以不需要爲每個可能的情況創建狀態。只是爲主題創建視圖。
    +0

    在ui路由器中有控制器提供程序,這將有助於在您的狀態下注入動態控制器。看起來像是一個很好的功能。 –

    相關問題