我正在使用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));
}}();
而且,任何人都可以提出這是否是使用第三方庫的正確方法?