我尝试在 HTML 模板中使用一个有点深的 JSON 对象。
{
"service": {
"name": "example",
"url": "abc.com",
"template": "/abc/def/v1",
"metadata": {
"password": "dontguessme",
"username": "supereasy"
}
}
}
我包含一个包含以下 HTML 代码的模板。
<div class="modal-body" ng-include="service.instructionsTemplate"> </div>
模板中有以下内容。
<h1>Some example content</h1>
{{service.metadata.password}}
我的问题是,有没有一种方法可以仅使用可变密码来引用它,而不是通过 service.metadata 引用字段密码。
我试图深入研究一些有关范围和模板的 Angular 文档,但一无所获。我看到你可以使用 ng-init。
我能够使用 ng-init="metadata = service.metadata"
并能够通过 metadata.password
引用模板中的字段密码。< br/>
不过我只想通过密码
引用它。
有什么想法吗?
最佳答案
您已经执行了 ng-init="metadata = service.metadata"
,为什么不更进一步执行 ng-init="password = service.metadata.password"
?
另一种方法是将 $scope.password = service.metadata.password
绑定(bind)到您在该页面上使用的 Controller
编辑:OP提出了一个更通用的解决方案
如果您不知道属性名称,那么最好的做法是绑定(bind)元数据对象,就像您已经做的那样,然后使用 ng-repeat 迭代其属性
在你的 Controller 中:
$scope.metadata = service.metadata
在您的模板( View )中:
<h1>Some example content</h1>
<ul>
<li ng-repeat="element in metadata">{{element}}</li>
</ul>
关于javascript - AngularJS 将变量分配给 View 的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24635727/