我正在开发一个从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;。
谢谢!
答案 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的范围。