AngularJs 1.6组件偏差

时间:2017-10-24 12:08:07

标签: angularjs angularjs-components

使用camelcase绑定路由angularjs组件对我来说不起作用,我不知道为什么。

这是示例

组件

angular.
  module('pdaFile').
  component('pdaFile', {
    templateUrl: 'app/myComponent/myComponent.html',
    bindings:{
        data:"<",
        dataFileId:"@",
        datafileid:"@",
        id:"@"
    },
    controller: ['NgTableParams','UserAuthService',
      function pdaFileController(NgTableParams,UserAuthService) {
        var self=this;

...

self.$onInit = function () {
            console.log(self.dataFileId); // undefined
            console.log(self.id); // OK
            console.log(self.datafileid); //OK

        };


appConfig.js

..

//路由器

angular.
  module('app')
      .config(['$locationProvider', '$routeProvider',
         function config($locationProvider, $routeProvider) {
     $locationProvider.hashPrefix('!');
     $routeProvider.
when('/pda', {
           template: '<pda-file id="pippo" datafileid="current" data-file-id="current"></pda-file>'})
     .  

...

我无法以任何方式填充绑定参数dataFileId。它总是未定义的。 我试过

<pda-file data-file-id="current"></pda-file>'

<pda-file dataFileId="current"></pda-file>'

等方式。相反,非camelcase param datafileid和id可以完美地工作。

有人可以告诉我为什么?

1 个答案:

答案 0 :(得分:0)

你试过吗?

data-file-id="current"

或者

file-id="current"

然后

bindings:{
    fileId:"@",
}