2017-02-13 67 views
1

我正在從一個JSON文件中提取大量問題的項目。使用字符串作爲範圍屬性名稱在視圖中的角度

問題的格式各不相同,但問題是由滑塊問題類型引起的。

我運行一個HTTP請求來獲取JSON數據並將其分配給一個名爲'questions'的作用域。然後我在視圖中重複問題,如果(在這種情況下)問題類型是「滑塊」,我輸出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.'the defined scope name'的範圍。

謝謝!

+0

你的問題似乎是一個字符串因此問題。<>無法完成 –

+0

@VinodLouis問題是一個名爲「definedScopeName」字符串的對象。我想將模型設置爲同名的範圍變量 – Lovelock

+1

請提供一個[mcve] – charlietfl

回答

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> 

在角表達式使用括​​號標記,所述this關鍵字結合至角表達的範圍。

+0

正當我雖然這是不可能的!非常感謝你。 – Lovelock

相關問題