【发布时间】:2016-05-29 19:20:06
【问题描述】:
我正在尝试通过我的 HTML 模板将一个对象从控制器传递给一个指令,以在另一个 HTML 模板中使用该对象。
我有一个控制器:
function controller($state, $rootScope) {
var vm = this;
vm.residents = [object];
}
在我的配置中:
function config($sateprovider) {
[..],
templateUrl: [..]/template.html,
[..]
}
在我得到的 templtate.html 中:
<div ng-repeat="resident in controller.residents>
<user-block user={{ resident }}></user-block>
</div>
在我的用户屏蔽指令中,我得到了:
function userBlock() {
restrict: 'E',
templateUrl: [..]/userblock.html,
controller: 'blockController',
controllerAs: 'blockCtrl',
bindTocController: true,
replace: true,
scope: {
user: '@',
}
}
最后在 userblock.html 中:
<div>{{ blockCtrl.user }}</div>
我得到以下输出:
{"username":"Xiduzo","user_id":123,"experience":123456789,"total_energy":100,"energy_left":50,"rupees":[{"name":"emerald", "amount":106},{"name":"sapphire","amount":43},{"name":"紫水晶","amount":131},{"name":"ruby","amount ":11},{"name":"citrine","amount":159},{"name":"coal","amount":23}]}
但是当我想获取用户名并喜欢:
<div>{{ blockCtrl.user.username }}</div>
我根本没有输出。
我有什么遗漏或做错了吗?
【问题讨论】:
-
你真的忽略了
user={{ resident }}中的引号吗?因为那绝对行不通。试试user="{{ resident }}" -
不带引号也能正常工作,添加引号并不能解决问题。
标签: javascript angularjs object data-binding angularjs-directive