使用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可以完美地工作。
有人可以告诉我为什么?
答案 0 :(得分:0)
你试过吗?
data-file-id="current"
或者
file-id="current"
然后
bindings:{
fileId:"@",
}