javascript - AngularJS 将变量分配给 View 的范围

标签 javascript angularjs templates angularjs-scope

我尝试在 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/

相关文章:

javascript - 更改 Bootstrap Datepicker 日期范围的可选范围

javascript - 在 Scss Functions Angular 中动态添加 $theme-colors 颜色

javascript - 使用 leafletjs 创建箭头

Angularjs 指令 - 通过类名选择下一个元素

angularjs - 如何将现有的 Angular 应用程序移植到 Electron ?

c++ - 如何在编译时使用 C++ 模板存储递归函数的中间结果?

javascript - 使用 P5 javascript 从图像生成调色板

javascript - $scope.$watch 无法正常工作

c++ - 如何使用函数指针作为类中的参数

c++ - 元编程中有哪些数学运算符可用