angular.js从数据库获取链接

时间:2015-04-01 21:26:23

标签: javascript php angularjs laravel

我使用laravel 5作为后端,使用angular.js作为前端。应用完全由ajax请求驱动。

我在我的视图中显示了一些静态链接(总是在任何可见的页面上),如下所示:

<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 个答案:

答案 0 :(得分: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>
    
  2. 这是angularjs页面解释$interpolateProvider

    这样您就不会在AngularJS和Blade Template Engine之间产生冲突

    1. 您应该使用AngularJS
    2. 加载它
    3. 您应该将结果附加到自定义AngularJS控制器中的$ scope.links。基于步骤1中的代码,您可以将$ http注入匿名DemoController函数,然后在内部控制器之后执行以下操作:

      var self = this; $ http.get('你的API LINK',函数(数据){     self.links = data; });