我创建了以下元素指令:
orderApp.directive('addressBlock', function() {
return {
restrict: 'E',
scope: true,
bindToController: {
addressType: '@',
address: '='
},
templateUrl: '/pages/address-block.html',
controllerAs: 'AddressCtrl',
controller: 'AddressController'
};
});
现在我想访问AddressController中的addressType和地址值。我创建了基本函数来检查值是否通过:
orderApp.controller('AddressController', function(){
console.log(this);
});
问题是“addressType”是正确的,而“address”是未定义的。
以下是我在HTML中定义指令的方法:
<address-block address-type="Ship" address="orderCtrl.order.shippingAddress"></address-block>
我错过了什么吗?或者有任何特殊的方法来传递对象数据?
更新
我发现代码有什么问题。问题是我们使用$ http get。
从服务器收到的数据初始化orderCtrl.order属性此请求需要一些时间,在此期间,以下代码将使this.address未定义。
orderApp.controller('AddressController', function(){
console.log(this);
});
从服务器收到数据后,this.address将包含实际数据。
感谢大家的帮助!