【问题标题】:Angularjs $interpolate provider not workingAngularjs $interpolate 提供程序不起作用
【发布时间】:2018-01-25 18:43:58
【问题描述】:

即使经过深入研究,我似乎也无法找到我的 $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);

【问题讨论】:

  • 自我回答是适当的和赞赏。由于您能够以对其他人有帮助的方式解决问题,因此您应该考虑将您的修复作为问题的答案,而不是对问题的编辑。
  • 感谢您的提示,以后会做的!

标签: javascript angularjs


【解决方案1】:

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>

我认为这会有所帮助。试试吧。

【讨论】:

    【解决方案2】:

    我准备了一个示例,展示如何使用 $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>
    

    【讨论】:

    • 我已经多次看到这个例子,但不知何故,我无法让它工作。
    • 仔细查看 plnkr url 示例。我认为您这边的问题隐藏在子模块调用中的某个地方。尝试先从演示 url 开始工作,并从中构建一个欲望结构。
    • 不知何故我无法让它工作。感谢您的帮助先生!
    • 不客气,只是想尝试更多地使用您的代码,也许您只是明显遗漏了一些东西。
    • 怕是太明显了!
    【解决方案3】:

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

    'use strict';
    
    var myApp = angular.module('myApp', []);
    
    myApp.config(['$interpolateProvider', 
    
        function($interpolateProvider) {
            $interpolateProvider.startSymbol('{[{');
            $interpolateProvider.endSymbol('}]}');
        }
    ]);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-17
      • 1970-01-01
      • 2023-03-15
      相关资源
      最近更新 更多