Angularjs $ interpolate提供程序无法正常工作

时间:2015-04-13 20:10:55

标签: javascript angularjs

即使经过一些彻底的研究,我似乎也无法找到为什么我的$ interpolateProvider无效。这是我定义新符号的地方。

var APP = APP || {};
APP.Subapp = APP.Subapp || {};
APP.Subapp.Admin = angular.module('APP.Subapp.Admin', ['APP.Subapp.Modules']);  
APP.Subapp.Admin.config(function($interpolateProvider) {
    $interpolateProvider.startSymbol('{[{').endSymbol('}]}');
});

我使用ng-app调用正确的应用程序。

<html ng-app="APP.Subapp.Admin" ng-controller="MainController">
<head>
    <link rel="stylesheet" href="/stylesheets/style.css"/>
    ...

由于我正在使用把手,我真的想改变它,我不能使用ng-bind,因为我需要通过某些功能传递信息,如ng-click。

... ng-click="confirm({{client.id}}) ...

非常感谢任何帮助。

编辑//

我解决了我的问题,如果它可以帮助一些人在那里。好像我在主模块js文件中覆盖了我的配置。这是有效的代码。

(function(APP){
    'use strict';
     APP.Subapp.Admin.config(function( $controllerProvider, $interpolateProvider ){      
        APP.Subapp.Admin.controller = $controllerProvider.register;
        $interpolateProvider.startSymbol('{[{');
        $interpolateProvider.endSymbol('}]}');
    });
})(APP);

3 个答案:

答案 0 :(得分:2)

var customInterpolationApp = angular.module('customInterpolationApp', []);
  customInterpolationApp.config(function($interpolateProvider) {
    $interpolateProvider.startSymbol('[{');
    $interpolateProvider.endSymbol('}]');
  });
  customInterpolationApp.controller('DemoController', function() {
      this.label = "This binding by [{ }] interpolation symbols.";
  });
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>custom-interpolation-markup-production</title>
  <script src="//code.angularjs.org/snapshot/angular.min.js"></script>  
</head>
<body ng-app="customInterpolationApp">
  
<div ng-controller="DemoController as demo">
    [{demo.label}]
</div>
</body>
</html>

我认为这会有所帮助。只是试试。

答案 1 :(得分:1)

我准备了一个示例,其中展示了如何使用$ interpolateProvider:http://plnkr.co/edit/0lotZRHhvv2bIKc96RVi?p=preview

以下是代码:

<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 :(得分:0)

试试这个(只需将$ interpolateProvider添加到依赖项):

'use strict';

var myApp = angular.module('myApp', []);

myApp.config(['$interpolateProvider', 

    function($interpolateProvider) {
        $interpolateProvider.startSymbol('{[{');
        $interpolateProvider.endSymbol('}]}');
    }
]);