在 ng-switch 中创建一个 handsontable
Create a handsontable in ng-switch
我想在 ng-switch
中使用 handsontable:当我们 select handsontable
时,它显示正常和 editable handson table.
HTML:
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<script src="https://docs.handsontable.com/pro/1.8.2/bower_components/handsontable-pro/dist/handsontable.full.min.js"></script>
<link type="text/css" rel="stylesheet" href="https://docs.handsontable.com/pro/1.8.2/bower_components/handsontable-pro/dist/handsontable.full.min.css">
</head>
<body ng-app="">
<select ng-model="myVar">
<option value="dogs">Dogs
<option value="handsontable">handsontable
</select>
<div ng-switch="myVar">
<div ng-switch-when="dogs">
<p>Welcome to a world of dogs.</p>
</div>
<div ng-switch-when="handsontable">
<div id="example1" class="hot handsontable htRowHeaders htColumnHeaders"></div>
</div>
</div>
</body>
</html>
JavaScript:
var example1 = document.getElementById('example1');
var settings1 = { data: [['A1', 'B1'], ['A2', 'B2']] };
var hot1 = new Handsontable(example1, settings1);
与 this working example 不同,table 中的单元格不是 editable。所以我想知道是否缺少某些东西。例如,在工作示例中,table 的创建由 document.addEventListener("DOMContentLoaded", function() { ... })
包装,我是否应该在此示例中用某些东西包装 javascript 代码以确保我们创建 table 只有在我们 ng-switch 到 handsontable
?
之后
所以正如@Mistailis 建议的那样,我们可以使用 ngHandsontable
。
HTML:
<!DOCTYPE html>
<html>
<head>
<base href="http://handsontable.github.io/ngHandsontable/node_modules/">
<link rel="stylesheet" href="handsontable/dist/handsontable.full.css">
<script src="angular/angular.js"></script>
<script src="handsontable/dist/handsontable.full.js"></script>
<script src="../dist/ngHandsontable.js"></script>
</head>
<body ng-app="app">
<select ng-model="myVar">
<option value="dogs">Dogs
<option value="handsontable">handsontable
</select>
<div ng-switch="myVar">
<div ng-switch-when="dogs">
<p>Welcome to a world of dogs.</p>
</div>
<div ng-switch-when="handsontable">
<div ng-controller="MainCtrl as ctrl">
<hot-table datarows="ctrl.db.items"></hot-table>
</div>
</div>
</div>
</body>
</html>
JavaScript:
function dataFactory () { };
dataFactory.$inject = [];
angular.module('ngHandsontable').service('dataFactory', dataFactory);
function MainCtrl(dataFctory) {
this.db = { items: [[5, 6], [7, 8]] };
}
MainCtrl.$inject = ['dataFactory'];
angular
.module('app', ['ngHandsontable'])
.controller('MainCtrl', MainCtrl);
我想在 ng-switch
中使用 handsontable:当我们 select handsontable
时,它显示正常和 editable handson table.
HTML:
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<script src="https://docs.handsontable.com/pro/1.8.2/bower_components/handsontable-pro/dist/handsontable.full.min.js"></script>
<link type="text/css" rel="stylesheet" href="https://docs.handsontable.com/pro/1.8.2/bower_components/handsontable-pro/dist/handsontable.full.min.css">
</head>
<body ng-app="">
<select ng-model="myVar">
<option value="dogs">Dogs
<option value="handsontable">handsontable
</select>
<div ng-switch="myVar">
<div ng-switch-when="dogs">
<p>Welcome to a world of dogs.</p>
</div>
<div ng-switch-when="handsontable">
<div id="example1" class="hot handsontable htRowHeaders htColumnHeaders"></div>
</div>
</div>
</body>
</html>
JavaScript:
var example1 = document.getElementById('example1');
var settings1 = { data: [['A1', 'B1'], ['A2', 'B2']] };
var hot1 = new Handsontable(example1, settings1);
与 this working example 不同,table 中的单元格不是 editable。所以我想知道是否缺少某些东西。例如,在工作示例中,table 的创建由 document.addEventListener("DOMContentLoaded", function() { ... })
包装,我是否应该在此示例中用某些东西包装 javascript 代码以确保我们创建 table 只有在我们 ng-switch 到 handsontable
?
所以正如@Mistailis 建议的那样,我们可以使用 ngHandsontable
。
HTML:
<!DOCTYPE html>
<html>
<head>
<base href="http://handsontable.github.io/ngHandsontable/node_modules/">
<link rel="stylesheet" href="handsontable/dist/handsontable.full.css">
<script src="angular/angular.js"></script>
<script src="handsontable/dist/handsontable.full.js"></script>
<script src="../dist/ngHandsontable.js"></script>
</head>
<body ng-app="app">
<select ng-model="myVar">
<option value="dogs">Dogs
<option value="handsontable">handsontable
</select>
<div ng-switch="myVar">
<div ng-switch-when="dogs">
<p>Welcome to a world of dogs.</p>
</div>
<div ng-switch-when="handsontable">
<div ng-controller="MainCtrl as ctrl">
<hot-table datarows="ctrl.db.items"></hot-table>
</div>
</div>
</div>
</body>
</html>
JavaScript:
function dataFactory () { };
dataFactory.$inject = [];
angular.module('ngHandsontable').service('dataFactory', dataFactory);
function MainCtrl(dataFctory) {
this.db = { items: [[5, 6], [7, 8]] };
}
MainCtrl.$inject = ['dataFactory'];
angular
.module('app', ['ngHandsontable'])
.controller('MainCtrl', MainCtrl);