Angular在视图

时间:2017-02-13 14:25:36

标签: javascript angularjs

我正在开发一个从JSON文件中提取大量问题的项目。

问题格式各不相同,但问题是由滑块问题类型引起的。

我运行HTTP请求以获取JSON数据并将其分配给名为' questions'的范围。然后我在视图中重复问题,如果(在这种情况下)问题类型是' slider'我输出HTML。

问题是滑块使用插件和带选项的范围变量。因为我无法控制我动态创建范围的问题:

angular.forEach($scope.questions, function(question) {
    $scope[question.definedScopeName] = {
        // set up the slider config.
    };
});

JSON问题包含用于范围的已定义名称,因此对于此示例" sliderOne"。

所以...在我看来,我在ng重复输出滑块:

<rzslider
    class="question__slider"
    rz-slider-model="question.definedScopeName.value"
    rz-slider-options="question.definedScopeName.options">
</rzslider>

这里的问题是正确设置模型范围我正在使用问题范围中的数据,因此它是一个字符串。

无论如何,我可以告诉Angular我实际上想要将模型设置为名为$ scope的范围。&#39;定义的范围名称&#39;。

谢谢!

1 个答案:

答案 0 :(得分:2)

将括号表示法与this关键字

一起使用
<!--
<rzslider
    class="question__slider"
    rz-slider-model="question.definedScopeName.value"
    rz-slider-options="question.definedScopeName.options">
</rzslider>
-->

<!-- Use bracket notation -->
<rzslider
    class="question__slider"
    rz-slider-model="this[question.definedScopeName].value"
    rz-slider-options="this[question.definedScopeName].options">
</rzslider>

在Angular Expressions中,this关键字绑定到Angular Expression的范围。