我正在使用jtable.js。我已经设法使用jquery构建原型,并且它工作正常,但现在我正试图在Angular中导入它。为此,我正在创建一个指令。 首先下面的代码显示了我使用JQuery所做的工作。在angularjs中使用jtable.js
在HTML中: -
<div id="mainTable"></div>
在Javascript中: -
var mainTable = $("#mainTable");
// Initialize jtable
mainTable.jtable("{
title: 'Table title',
actions: {
listAction: URL,
},
fields: {
Child: {
title: '',
display: openChild, // OpenChild is a function to get child grid layout
visibility: 'fixed'
},
Name: {
title: 'Name'
}
}
}")
// OpenChild的定义
function OpenChild(childData) {
var $img = $('<img src="imagePath"/>');
$img.click(function(){........}
return $img;
}
要角,我包裹它用它一个将jtable配置作为属性值的指令。类似以下内容: -
<div id="mainTable" jtable-Configuration="{
title: 'Table title',
actions: {
listAction: URL,
},
fields: {
Child: {
title: '',
display: openChild, // Where/How to define openChild in angularjs so external library (jtable.js) can call it.
visibility: 'fixed'
},
Name: {
title: 'Name'
}
}
}"></div>
的问题是,我不知道我怎样才能让JTable的库调用OpenChild方法。我应该在哪里指定这种方法。在指令里面?作为HTML文件中的JavaScript函数?
请注意,我的指令是很简单的: -
(function() {
'use strict';
angular
.module('myApp')
.directive('jtableConfiguration', jTableFunc);
function jTableFunc() {
var directive = {
link: link,
restrict: 'A'
};
return directive;
function link(scope, element, attrs) {
$(element).jtable(scope.$eval(attrs.jTable));
}}();
而且,任何人都可以提出这是否是使用第三方库的正确方法?