2013-08-01 34 views
0

我想知道是否可以將視圖添加到視圖中,而不是替換前一個。AngularJS:添加部分而不是替換當前視圖

的用例是如下:

  • 我建立一個問卷
  • 在開始問卷只有1個問題是可見的/在DOM
  • 問題1使然回答什麼問題2應該是
  • 在回答問題1時,問題2被附加到問題1下的DOM後面
  • 如果問題1被更改,所有其他問題都會從dom中重置/刪除,並且新的una nswered問題2出現(下1)

也許用一個局部問題是不是要走的路,在這種情況下,請讓我知道的最佳方法是什麼(香草/無角JS?)

+0

您可以使用ng-include。 – zsong

回答

0

爲了給你一個大概的瞭解:

考慮到你的應用程序是在angularjs,你應該有一個控制你所有的問題的模型裏面:

$scope.questions = [ 
    { 
     "question":"foo?", 
     "options":["bar1","bar2","bar3","bar4"] 
     "answer":2 
    }, 
    { 

    }, 
    { 

    } 
]; 

// initially show the 1st question 
$scope.currentQuestIndex = 0; 

$scope.currentQuestion = $scope.questions[$scope.currentQuestIndex]; 

,並使用currentQuestion您的視圖中爲:

<div>Question: {{currentQuestion.question}}</div> 

當用戶選擇一個正確的答案,你可以簡單地更新當前的問題:

$scope.submitAnswer = function(){ 
    // check if the answer is correct 
    if(isCorrect){ 
     $scope.currentQuestion = $scope.questions[$scope.currentQuestIndex + 1]; 
    } 
} 

這將動態更新您的看法!感謝angularjs提供的數據綁定功能。

+0

啊謝謝你的洞察力..我可能會稍微改變方法。使用包含所有問題的模型並根據某些過濾器顯示它們。最初,過濾器只是「通過」第一個問題,但隨着用戶在問題中的進展,更多的人得到「解鎖」。 我想我需要一個過濾器,因爲不是所有的問題都可能需要。以「是」回答Q1會產生不同的Q2,然後是「否」 – publicJorn

相關問題