Javascript 如果不存在段落,则默认情况下创建段落
我正在添加json文件中的段落。我如何计算它们(我尝试了.length),如果少于10,我需要创建默认值并将它们添加到页面上?例如,用户可以添加带有一些自定义文本的段落,如果他添加3个段落,默认情况下我想再添加7个。所以页面上始终有10个。这是我的结构,目前显示了4段,因为json文件中只有4段:Javascript 如果不存在段落,则默认情况下创建段落,javascript,html,angularjs,Javascript,Html,Angularjs,我正在添加json文件中的段落。我如何计算它们(我尝试了.length),如果少于10,我需要创建默认值并将它们添加到页面上?例如,用户可以添加带有一些自定义文本的段落,如果他添加3个段落,默认情况下我想再添加7个。所以页面上始终有10个。这是我的结构,目前显示了4段,因为json文件中只有4段: <div class="row" ng-repeat="p in list.paragraphs" ng-class="isSelectedBoard(p)"> <p cl
<div class="row" ng-repeat="p in list.paragraphs" ng-class="isSelectedBoard(p)">
<p class="slide-wrap" ng-click="setMasterBoard(p)">
some text goes here
</p>
</div>
我会在控制器中执行此操作。在从json文件添加段落的函数中,在添加文件中的所有段落后,只需添加足够的默认段落,使
段落的长度等于10
angular.module('app',[]).controller('MyController',function($scope){
$scope.list={
段落:[{
text:“这是一个用户段落。”,
defaultBG:“#000”
}, {
text:“这是另一个用户段落。”,
defaultBG:“#000”
}, {
文本:“这是第三个用户段落。”,
defaultBG:“#000”
}]
}
var默认段落={
text:“这是默认段落。”,
defaultBG:“#000”
};
for(变量i=$scope.list.parations.length;i<10;i++){
$scope.list.parations.push(默认段落);
}
});代码>
{{p.text}}
我会在控制器中执行此操作。在从json文件添加段落的函数中,在添加文件中的所有段落后,只需添加足够的默认段落,使段落的长度等于10
angular.module('app',[]).controller('MyController',function($scope){
$scope.list={
段落:[{
text:“这是一个用户段落。”,
defaultBG:“#000”
}, {
text:“这是另一个用户段落。”,
defaultBG:“#000”
}, {
文本:“这是第三个用户段落。”,
defaultBG:“#000”
}]
}
var默认段落={
text:“这是默认段落。”,
defaultBG:“#000”
};
for(变量i=$scope.list.parations.length;i<10;i++){
$scope.list.parations.push(默认段落);
}
});代码>
{{p.text}}
似乎在控制器中执行此操作要容易得多。好的,有什么建议吗?我的意思是使用JSFIDLE将是最好的:-)我可以看看您现有的控制器代码,或者至少是与加载这些段落相关的部分吗?检查我对部分控制器视图的编辑,好像在您的控制器中这样做要容易得多。好的,有什么建议吗?我的意思是使用JSFIDLE将是最好的:-)我可以看看您现有的控制器代码,或者至少是与这些段落的加载相关的部分吗?检查我对控制器部分的编辑。这里是您的答案。这基本上就是我要说的。谢谢,但是我得到了ng repeat dups
错误,我应该在html中做些什么来解决这个问题?当我添加track by$index
时,它会显示段落,但我仍然有这个错误showing@Lex也可以通过推送传递其他数据吗?例如,如果我添加var defaultBG=“#000”;我如何将其与DefaultParague一起传递?@Morpheus您可以使段落成为包含您想要的任何属性的对象。用户段落是什么样子的?您可以使默认值与这些匹配。至于dups错误,我以前使用过track by$index来修复它,所以我不确定。让我调查一下。好了,这是你的答案。这基本上就是我要说的。谢谢,但是我得到了ng repeat dups
错误,我应该在html中做些什么来解决这个问题?当我添加track by$index
时,它会显示段落,但我仍然有这个错误showing@Lex也可以通过推送传递其他数据吗?例如,如果我添加var defaultBG=“#000”;我如何将其与DefaultParague一起传递?@Morpheus您可以使段落成为包含您想要的任何属性的对象。用户段落是什么样子的?您可以使默认值与这些匹配。至于dups错误,我以前使用过track by$index来修复它,所以我不确定。让我调查一下。
$scope.list = {};
$http.get('name.json').success(function(data, status, headers, config) {
$scope.list = data;
});