2015-04-01 98 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