我在这里http://craftpip.github.io/jquery-confirm/#dialog使用这个工具,我希望有一个弹出窗口,它具有可变数量的按钮,这些按钮基于用于构建弹出窗口的数据。
以下是一个非常简单/空白的例子。
var app = angular.module('accordions', []);
app.controller('MainCtrl', function($scope) {
$scope.fieldAccordions = [{
fieldAccordionHeader: 'Header 1',
collapseToggle: 'one',
fieldAccordionItems: [{
desc: 'Item 1 - A'
}, {
desc: 'Item 1 - B'
}]
}, {
fieldAccordionHeader: 'Header 2',
collapseToggle: 'two',
fieldAccordionItems: [{
desc: 'Item 2'
}]
}, {
fieldAccordionHeader: 'Header 3',
collapseToggle: 'three',
fieldAccordionItems: [{
desc: 'Item 3'
}]
}];
});
我想要的是能够在“按钮:{...}”的一侧放置一个foreach循环。
有没有办法这样做或者有办法实现我想做的事情?
答案 0 :(得分:0)
在构建您的选项对象之前:
var options = {
title: 'testing',
content: 'this has two static buttons',
buttons: {},
};
$.each( variable_name, function(){
options.buttons[ this.btn_name ] = this.fn;
} );
$.confirm( options );
当然,一切都取决于你循环的对象是怎样的,但逻辑就在这里。
答案 1 :(得分:0)
你的逻辑是倒置的。以下是一个对象:
{
title: 'testing',
content: 'this has two static buttons',
buttons: {
confirm: function () {
},
cancel: function () {
},
}
}
所以你可以这样做:
var options = {
title: 'testing',
content: 'this has two static buttons',
buttons: {
confirm: function () {
},
cancel: function () {
},
}
};
$.confirm(options);
然后您可以按
添加项目options.buttons["mybutton"] = function() { };
您可以将前面的代码放在循环中并更改字符串" mybutton"无论您有什么功能,都可以随心所欲。您基本上问how to add a property to and existing javascript object。