2015-04-01 92 views
1

我使用laravel 5作爲後端和angular.js作爲前端。應用程序完全由ajax請求驅動。angular.js從數據庫中獲取鏈接

我展示在我看來,一些靜態鏈接(這將是永遠的任何頁面上顯示)是這樣的:

<li ng-repeat="link in links"> 
    {{link.name}} 
</li> 
  1. 什麼是處理這個最好的方法是什麼?我的觀點不包含.blade(因爲角)因此我無法加載這些鏈接扔php。
  2. 我應該嘗試做一些PHP的解決方法或加載它在角度投擲$http
  3. 如果在角度上我應該如何把它配置到這個配置函數中?

    app.config(function($routeProvider, $locationProvider) { 
        var links = ??; // http doesn't want to work here 
        links.map(function(item) { 
        $routeProvider.when('/'+item.url, { 
         .. 
        }); 
        }); 
    }); 
    

回答

1
  1. 我建議首先要整合AngularJS與在Laravel刀模板引擎一起工作。這可以通過稱爲內插的角度服務輕鬆完成。 這裏是你將如何使它:

    <script> 
    var customInterpolationApp = angular.module('customInterpolationApp', []); 
    
    customInterpolationApp.config(function($interpolateProvider) { 
        $interpolateProvider.startSymbol('[['); 
        $interpolateProvider.endSymbol(']]'); 
    }); 
    
    customInterpolationApp.controller('DemoController', function() { 
        this.label = "This binding is brought you by [[ ]] interpolation symbols."; 
    }); 
    </script> 
    
    <div ng-app="App" ng-controller="DemoController as demo"> 
        [[demo.label]] 
    </div> 
    

這裏是地名釋義的$interpolateProvider

這樣你就不必AngularJS和刀片模板引擎之間的衝突angularjs頁

  • 您應該使用AngularJS加載它
  • 您應該將結果附加到$ scope.links i n一個自定義的AngularJS控制器。根據第1步中的代碼,你可以在匿名DemoController函數中注入$ http,並且在這個內部控制器之後執行如下操作:

    var self = this; $ http.get('YOUR API LINK',function(data){ self.links = data; });

  • +0

    感謝您的整合,我會看看它。但如果它會工作不會更好加載它拋出PHP?沒有必要這樣做,然後扔js。 – dontHaveName 2015-04-01 21:42:59

    +0

    在php的部分你創建你的API,在AngularJS部分你叫你api來獲取結果。 – 2015-04-01 21:46:20

    +0

    是的,但我寫道,這個鏈接將是靜態的,用戶將不必等到ajax將鏈接 – dontHaveName 2015-04-01 21:47:57