我为AngularJS编写了一个dataTables指令.它的工作正常,除了我试图添加一个按钮到行删除行与ng点击.
在我看来,问题出现是因为表行现在不是范围.
有人可以帮助我解决这个问题.
jsFiddle示例:http://jsfiddle.net/A5Zvh/7/
我的指令看起来像这样.
angular.module('DataTables', [])
.directive('datatable', function() {
return {
restrict: 'E',
transclude: true,
replace: true,
require: 'ngModel',
template: '<table></table>',
link: function(scope, element, attrs, model) {
var dataTable = null,
options;
var buttons = jQuery.parseJSON(attrs['buttons']) || null;
options = {
"bJQueryUI": false,
"sDom": "<'row-fluid'<'span4'l><'span8 filter' <'pull-right'T> <'pull-right'f>>r>t<'row-fluid'<'span6'i><'span6'p>>",
"sPaginationType": "bootstrap",
"oTableTools": {
}
};
if(_.has(attrs, 'datatableOptions')) {
jQuery.extend(true, options, scope.$eval(attrs['datatableOptions']));
}
scope.$watch(attrs.ngModel, function(data) {
if(data && _.size(data.aaData) > 0 && _.size(data.aoColumns) > 0) {
_.extend(options, scope.$eval(attrs.ngModel)) …Run Code Online (Sandbox Code Playgroud) 我目前正在使用一个Javascript应用程序,该应用程序正在使用带有"模块模式"的多个javascript文件.像这样:
var app = app || {};
app.moduleName = app.moduleName || {};
app.moduleName = function () {
// private property
var someProp = null;
return {
// public method
init: function () {
return "foo";
}
};
}();
Run Code Online (Sandbox Code Playgroud)
我使用它的原因是为了构建我的代码.我可以通过调用app.moduleName.init()来调用方法或属性.
这样做的一个缺点是我必须<script src="app.moduleName.js">在我的HTML中包含很多..等等.
为了解决这个问题,我遇到了RequireJS,我阅读了文档.但我不太确定如何在我现有的结构中合并它,而无需在现有的javascript文件中添加大量代码.
有人有任何建议如何实现这一目标?