【问题标题】:Removing `{{` in angular删除 `{{` 角度
【发布时间】:2015-12-08 21:48:54
【问题描述】:

我正在使用 Laravel 框架..

我不能在里面使用{{ 符号(因为 laravel 认为它是输出)

我试过这段代码使用 interpolateProvider.. 即,在单个 angualr js 文件中使用 <% 而不是 angularjs 中的 {{。但是我怎样才能在我的 .run 函数或配置文件中做到这一点?

  var sampleApp = angular.module('sampleApp', [], function($interpolateProvider) {
        $interpolateProvider.startSymbol('<%');
        $interpolateProvider.endSymbol('%>');
    });

这是我的app.js

 var app = angular.module('myApp', ['ngRoute', 'ngAnimate', 'toaster']);

 app.config(['$routeProvider',
     function($routeProvider) {
         $routeProvider.
         when('/login', {
                 title: 'Login',
                 templateUrl: 'resources/views/layout/login.php',
                 controller: 'authCtrl'
             })
             .when('/', {
                 title: 'Login',
                 templateUrl: 'resources/views/layout/login-ang.php',
                 controller: 'authCtrl',
                 role: '0'
             })
             .when('/invalidtoken', {
                 title: 'Login',
                 templateUrl: 'resources/views/layout/invalidtoken.php',
                 controller: 'authCtrl',
                 role: '0'
             })
     }
 ])

 .run(function($rootScope, $location, Data, $http) {
     $rootScope.$on("$routeChangeStart", function(event, next, current) {
         $http.post('resources/views/layout/calls/checkSession.php', {}).then(function(results) {
             function($rootScope, $location) {
                 $rootScope.this_route = function() {
                     return $location.path().replace('/', '');
                 };
             };
         });
     });
 });

【问题讨论】:

    标签: javascript php angularjs laravel


    【解决方案1】:

    在 app.js 中 angular 的配置函数中

        var app = angular.module('myApp', ['ngRoute', 'ngAnimate', 'toaster']);
    
      // inject interpolateProvider into config
      app.config(['$routeProvider', '$interpolateProvider',
      function ($routeProvider, $interpolateProvider) {
    
        $interpolateProvider.startSymbol('<%');
        $interpolateProvider.endSymbol('%>');
    
        $routeProvider.
          when('/login', {
            title: 'Login',
            templateUrl: 'resources/views/layout/login.php',
            controller: 'authCtrl'
          })
          .when('/', {
            title: 'Login',
            templateUrl: 'resources/views/layout/login-ang.php',
            controller: 'authCtrl',
            role: '0'
          })
          .when('/invalidtoken', {
            title: 'Login',
            templateUrl: 'resources/views/layout/invalidtoken.php',
            controller: 'authCtrl',
            role: '0'
          })
      }
    ]);
    

    然后在您使用的模板中:

    <h1><% my_angular_expression %></h1>
    

    【讨论】:

    • 我的配置函数是这个..var app = angular.module('myApp', ['ngRoute', 'ngAnimate', 'toaster']);还是app.config(['$routeProvider', function ($routeProvider) {
    • 请编辑您的问题并提供您的 app.js 的代码,以便我阅读
    • 这对我有用 ;) var app = angular.module('myApp', ['ngRoute', 'ngAnimate', 'toaster'], function($interpolateProvider) { $interpolateProvider.startSymbol('&lt;%'); $interpolateProvider.endSymbol('%&gt;'); } );
    • 是的,但我正在向您展示最安全的方法。你的方式会破坏你的代码。这就是为什么建议在这样的数组中指定你的依赖项,因为字符串不会被丑化
    • 这里有一个链接,可以阅读更多关于 Angular 中的 minsafe 最佳实践的信息:thegreenpizza.github.io/2013/05/25/…,如果您觉得有用,请接受答案
    猜你喜欢
    • 2021-11-22
    • 1970-01-01
    • 1970-01-01
    • 2016-06-25
    • 2013-07-29
    • 2015-04-29
    • 2015-01-16
    • 2017-12-28
    • 1970-01-01
    相关资源
    最近更新 更多