AngularJS:附加部分视图而不是替换当前视图

AngularJS:附加部分视图而不是替换当前视图,angularjs,view,partial,Angularjs,View,Partial,我想知道是否有可能在视图中附加一个partial,而不是替换上一个 用例如下所示: 我正在制作一份问卷 开始问卷调查时,DOM中只有1个问题可见 问题1的答案决定了问题2应该是什么 在回答问题1时,问题2被附加到DOM中,在问题1下 如果问题1已更改,则所有其他问题都将重置/从dom中删除,并出现一个新的、未回答的问题2(在1下) 也许使用一个部分a问题不是解决问题的方法,在这种情况下,请让我知道首选方法(普通/无角度JS?)让您大致了解: 鉴于您的应用程序是angularjs,您应该将所有

我想知道是否有可能在视图中附加一个partial,而不是替换上一个

用例如下所示:

  • 我正在制作一份问卷
  • 开始问卷调查时,DOM中只有1个问题可见
  • 问题1的答案决定了问题2应该是什么
  • 在回答问题1时,问题2被附加到DOM中,在问题1下
  • 如果问题1已更改,则所有其他问题都将重置/从dom中删除,并出现一个新的、未回答的问题2(在1下)

也许使用一个部分a问题不是解决问题的方法,在这种情况下,请让我知道首选方法(普通/无角度JS?)

让您大致了解:

鉴于您的应用程序是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>

这将动态更新您的视图!感谢angularjs提供的数据绑定功能。

您可以使用ng-include.Ah感谢您的洞察力。。不过我可能会稍微改变一下方法。使用包含所有问题的模型,并根据某些过滤器显示这些问题。最初,过滤器只“通过”第一个问题,但随着用户逐步通过这些问题,更多的问题将被“解锁”。我想我需要一个过滤器,因为不是所有的问题都需要。回答Q1为“是”将产生不同的Q2,然后回答“否”
$scope.submitAnswer = function(){
    // check if the answer is correct
    if(isCorrect){
        $scope.currentQuestion = $scope.questions[$scope.currentQuestIndex + 1];
    }
}