- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我尝试使用 AngularJS 构建一个应用程序。我正在尝试创建一个表来显示联系信息,并将信息填充在不同的行中。我还希望能够向该表添加新联系人。该表如下所示:image of contact table 。
这是当您按下“添加行”按钮时添加新联系人的表单:image of "add a contact" form 。
我将显示的 HTML 代码是部分模板的一部分,因此如果您尝试运行它,它将是无样式的。如果你查看 javascript 部分,灰色区域是不同的场景,我会尝试强制提供这些信息。我一整天都在努力解决这个问题,但似乎找不到解决方案。关于我的代码中可能做错的事情有什么建议吗?这是代码:
'use strict';
/* Controllers */
angular.module('app', [])
.controller('TableWithDynamicRowsCtrl', ['$scope', function($scope) {
var table = $('#tableWithDynamicRows');
$scope.options = {
"sDom": "<'table-responsive't><'row'<p i>>",
"destroy": true,
"scrollCollapse": true,
"oLanguage": {
"sLengthMenu": "_MENU_ ",
"sInfo": "Showing <b>_START_ to _END_</b> of _TOTAL_ entries"
},
"iDisplayLength": 5
};
$scope.contact = {};
$scope.addContact = function(){
/*$scope.contacts = {'name': $scope.contact.name, 'company': $scope.contact.company, 'address': $scope.contact.address, 'city': $scope.contact.city, 'state': $scope.contact.state, 'zip': $scope.contact.zip, 'email': $scope.contact.email, 'phone': $scope.contact.phone, 'notes': $scope.contact.notes, 'status': $scope.contact.status};*/
$scope.employees.push({name: $scope.name, company: $scope.company, address: $scope.address, city: $scope.city, state: $scope.state, zip: $scope.zip, email: $scope.email, phone: $scope.phone, notes: $scope.notes, status: $scope.status});
$scope.contacts = {};
for(var i in $scope.employees){
console.log($scope.employees[i]);
}
$('#addNewAppModal').modal('hide');
};
$scope.showModal = function() {
$('#addNewAppModal').modal('show');
}
$scope.addApp = function() {
table.dataTable().fnAddData([
$("#appName").val(),
$("#appCompany").val(),
$("#appAddress").val() + $("#appCity").val() + ',' + $("#appState").val() + $("#appZip").val() ,
/* $("#appCity").val(),
$("#appState").val(),
$("#appZip").val(),*/
$("#appEmail").val(),
$("#appPhone").val(),
$("#appNotes").val(),
$("#appStatus").val()
]);
}
$scope.employees = [
{ name: "Donald Trump", company: "Being President", address: "Trump Tower", city: "NYC", state: "NY", zip: "77093", email: "iamthebest@gmail.com", phone: "(713) 226-2462", notes: "Tax", status: "Active" },
{ name: "Dora the Explorer", company: "Exploring the World", address: "Nickelodian", city: "Santa Fe", state: "NM", zip: "77093", email: "theoutback@gmail.com", phone: "(713) 226-2462", notes: "Education", status: "Inactive"},
{ name: "Harry Potter", company: "Hogwarts", address: "3800 Hopper Rd", city: "London", state: "England", zip: "77093", email: "pottertheson@gmail.com", phone: "(713) 226-2462", notes: "Education", status: "Active"},
{ name: "Lily Potter", company: "Housewife", address: "3800 Hopper Rd", city: "Beyond the Grave", state: "Underworld", zip: "77093", email: "potterthemother@gmail.com", phone: "(713) 226-2462", notes: "Bookkeeping", status: "Inactive"},
{ name: "James Potter", company: "Tormenting Snape", address: "Hogwarts Blvd", city: "Beyond the Grave", state: "Underworld", zip: "77093", email: "potter@gmail.com", phone: "(713) 226-2462", notes: "Tax", status: "Inactive"},
{ name: "Severus Snape", company: "Professor at Hogwarts", address: "Betrayal St", city: "London", state: "England", zip: "77093", email: "ilovelily@gmail.com", phone: "(713) 226-2462", notes: "Education", status: "Inactive"},
];
}])
.controller('TableWithExportOptionsCtrl', ['$scope', function($scope) {
var table = $('#tableWithExportOptions');
$scope.options = {
"sDom": "<'exportOptions'T><'table-responsive't><'row'<p i>>",
"destroy": true,
"scrollCollapse": true,
"oLanguage": {
"sLengthMenu": "_MENU_ ",
"sInfo": "Showing <b>_START_ to _END_</b> of _TOTAL_ entries"
},
"iDisplayLength": 5,
"oTableTools": {
"sSwfPath": "assets/plugins/jquery-datatable/extensions/TableTools/swf/copy_csv_xls_pdf.swf",
"aButtons": [{
"sExtends": "csv",
"sButtonText": "<i class='pg-grid'></i>",
}, {
"sExtends": "xls",
"sButtonText": "<i class='fa fa-file-excel-o'></i>",
}, {
"sExtends": "pdf",
"sButtonText": "<i class='fa fa-file-pdf-o'></i>",
}, {
"sExtends": "copy",
"sButtonText": "<i class='fa fa-copy'></i>",
}]
},
fnDrawCallback: function(oSettings) {
$('.export-options-container').append($('.exportOptions'));
$('#ToolTables_tableWithExportOptions_0').tooltip({
title: 'Export as CSV',
container: 'body'
});
$('#ToolTables_tableWithExportOptions_1').tooltip({
title: 'Export as Excel',
container: 'body'
});
$('#ToolTables_tableWithExportOptions_2').tooltip({
title: 'Export as PDF',
container: 'body'
});
$('#ToolTables_tableWithExportOptions_3').tooltip({
title: 'Copy data',
container: 'body'
});
}
};
}]);
/* .controller('AddContactsCtrl', ['$scope', function($scope) {
$scope.contact = {};
$scope.addContact = function($scope.employees){
$scope.employees.push($scope.contact);
$scope.contact = {};
};
}]);*/
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!-- START PANEL -->
<div class="panel panel-transparent" ng-controller="TableWithDynamicRowsCtrl">
<div class="panel-heading">
<div class="panel-title">
</div>
<div class="pull-right">
<div class="col-xs-12">
<button id="show-modal" class="btn btn-primary btn-cons" ng-click="showModal()"><i class="fa fa-plus"></i> Add row</button>
</div>
</div>
<div class="pull-left">
<div class="col-xs-12">
<form class="search-container" id="tableWithSearch" action="//llamaswill.tumblr.com/search">
<input id="search-box" type="text" class="search-box" name="q" ng-model="searchText"/>
<label for="search-box"><span class="search-icon"><i class="pg-search"></i></span></label>
<input type="submit" id="search-submit" />
</form>
</div>
</div>
<div class="clearfix"></div>
</div>
<div class="panel-body">
<table class="table table-hover demo-table-dynamic" id="tableWithDynamicRows" ui-jq="dataTable" ui-options="options">
<thead>
<tr>
<th>Name</th>
<th>Company</th>
<th>Address</th>
<th>Email</th>
<th>Phone</th>
<th>Notes</th>
<th>Status</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="employee in employees | filter:searchText">
<td class="v-align-middle">
<p><span data-letters="{{ employee.name | limitTo: 1 }}" id="avatar" onload="return ran_col()" onmouseover="return ran_col()"></span>{{ employee.name }}</p>
</td>
<td class="v-align-middle">
<p>{{ employee.company }}</p>
</td>
<td class="v-align-middle">
<p>{{ employee.address }}<br> {{ employee.city }}, {{ employee.state }} {{ employee.zip }}</p>
</td>
<td class="v-align-middle">
<p>{{ employee.email }}</p>
</td>
<td class="v-align-middle">
<p>{{ employee.phone }}</p>
</td>
<td class="v-align-middle">
<p> <a href="" class="btn btn-tag">{{ employee.notes }}</a> </p>
</td>
<td class="v-align-middle">
<p>{{ employee.status }}</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<!-- END PANEL -->
</div>
<!-- END CONTAINER FLUID -->
<!-- MODAL STICK UP -->
<div class="modal fade stick-up" id="addNewAppModal" tabindex="-1" role="dialog" aria-labelledby="addNewAppModal" aria-hidden="true" ng-controller="TableWithDynamicRowsCtrl">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header clearfix ">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true"><i class="pg-close fs-14"></i>
</button>
<h4 class="p-b-5"><span class="semi-bold">New</span> Contact</h4>
</div>
<div class="modal-body">
<p class="small-text">Create a new contact using this form, make sure you fill all the fields in.</p>
<form role="form" >
<div class="row">
<div class="col-sm-12">
<div pg-form-group class="form-group form-group-default">
<label>Name</label>
<input id="appName" type="text" class="form-control" ng-model="name" required>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-12">
<div pg-form-group class="form-group form-group-default" >
<label>Company</label>
<input id="appCompany" type="text" class="form-control" ng-model="company" required>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-12">
<div pg-form-group class="form-group form-group-default">
<label>Address</label>
<input id="appAddress" type="text" class="form-control" ng-model="address" required>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-6">
<div pg-form-group class="form-group form-group-default">
<label>City</label>
<input id="appCity" type="text" class="form-control" ng-model="city" required>
</div>
</div>
<div class="col-sm-3">
<div pg-form-group class="form-group form-group-default">
<label>State</label>
<input id="appState" type="text" class="form-control" ng-model="state" required>
</div>
</div>
<div class="col-sm-3">
<div pg-form-group class="form-group form-group-default" ng-model="zip">
<label>ZIP</label>
<input id="appZip" type="text" class="form-control" required>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-6">
<div pg-form-group class="form-group form-group-default" ng-model="phone">
<label>Phone</label>
<input id="appPhone" type="text" class="form-control" >
</div>
</div>
<div class="col-sm-6">
<div pg-form-group class="form-group form-group-default" ng-model="email">
<label>Email</label>
<input id="appEmail" type="text" class="form-control" >
</div>
</div>
</div>
<div class="row">
<div class="col-sm-12">
<div pg-form-group class="form-group form-group-default" ng-model="notes">
<label>Description</label>
<input id="appNotes" type="text" required/>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-12">
<div pg-form-group class="form-group form-group-default" ng-model="status">
<label>Status</label>
<input id="appStatus" type="text" class="form-control" required>
</div>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button id="add-app" type="button" class="btn btn-primary btn-cons" ng-click="addContact()">Add</button>
<button type="button" class="btn btn-cons" data-dismiss="modal" aria-hidden="true">Close</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>
<!-- END MODAL STICK UP -->
<script>
$(document).ready(function() {
$("#appPhone").mask("(999) 999-9999");
});
</script>
<script type="text/javascript">
function ran_col() { //function name
var color = '#'; // hexadecimal starting symbol
var letters = ['000000','FF0000','00FF00','0000FF','FFFF00','00FFFF','FF00FF','C0C0C0']; //Set your colors here
color += letters[Math.floor(Math.random() * letters.length)];
document.getElementById('avatar').style.background = color; // Setting the random color on your div element.
}
</script>
最佳答案
您必须在初始化数据表
时定义其列属性,并将传递给表的所有列包含在列属性中。
因此,在您的情况下,这将是员工详细信息:
table.DataTable({
'paging': false,
'ordering': false,
"columns": [
{ "data": "company" },
{ "data": "address" },
{ "data": "email" },
{ "data": "phone" },
{ "data": "notes" },
{ "data": "status" },
],
data: dataset})
因此请确保所有列名称都对应于您的员工对象。
最后,在初始化数据表时将data
设置为空数组。就像上面的例子一样,我分配它数据集(空数组)。否则数据表将无法初始化。
关于javascript - 数据未添加到 Jquery DataTables 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43880433/
在带有 jQuery 的 CoffeeScript 中,以下语句有什么区别吗? jQuery ($) -> jQuery -> $ - > 最佳答案 第一个与其他两个不同,就像在纯 JavaScr
已关闭。这个问题是 off-topic 。目前不接受答案。 想要改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 已关闭13 年前。 Improve th
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
这个问题可能听起来很愚蠢,但请耐心等待,因为我完全是初学者。我下载了两个 jQuery 版本,开发版本和生产版本。我想知道作为学习 jQuery 的初学者,什么更适合我。 最佳答案 如果您对 jQue
The documentation说要使用 1.6.4,但我们现在已经升级到 1.7.2。 我可以在 jQuery Mobile 中使用最新版本的 jQuery 吗? 最佳答案 您当然可以,但如果您想
我在这里看到这个不错的 jquery 插件:prettyphoto jquery lightbox有没有办法只用一个简单的jquery来实现这样的效果。 我只需要弹出和内联内容。你的回复有很大帮助。
很明显我正在尝试做一些 jQuery 不喜欢的事情。 我正在使用 javascript 上传图片。每次上传图片时,我都希望它可见,并附加一个有效的删除脚本。显示工作正常,删除则不然,因为当我用 fir
这两个哪个是正确的? jQuery('someclass').click(function() { alert("I've been clicked!"); }); 或 jQuery('somec
我正在寻找一个具有以下格式的插件 if (jQuery)(function ($) { -- plugin code -- })(jQuery); 我明白 (function ($)
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭10 年前。 Improv
我知道这个问题已经被问过几次了,但想知道您是否可以帮助我解决这个问题。 背景:我尝试创建一个使用 Ajax 提交的表单(jQuery 表单提交)。我已经工作得很好,然后我想在表单上得到验证。我可以使用
我正在使用无处不在的jquery validate plugin用于表单验证。它支持使用metadata plugin用于向表单元素添加验证规则。 我正在使用此功能。当验证查找这些规则时,它会对元素进
我更喜欢为我一直在开发的网络社区添加实用的视觉效果,但随着事情开始堆积,我担心加载时间。 拥有用户真的更快吗加载(希望是缓存的)副本来自 Google 存储库的 jquery? 是否使用 jQuery
这个问题已经有答案了: Slide right to left? (17 个回答) 已关闭 9 年前。 你能告诉我有没有办法在 jQuery 中左右滑动而不使用 jQuery UI 和 jQuery
我如何找出最适合某种情况的方法?任何人都可以提供一些示例来了解功能和性能方面的差异吗? 最佳答案 XMLHttpRequest 是原始浏览器对象,jQuery 将其包装成一种更有用和简化的形式以及跨浏
运行时 php bin/console oro:assets:build ,我有 11 个这样的错误: ERROR in ../node_modules/jquery-form/src/jquery.
我试图找到 jQuery.ajax() 在源代码中的定义位置。但是,使用 grep 似乎不起作用。 在哪里? 谢谢。 > grep jQuery.ajax src/* src/ajax.js:// B
$.fn.sortByDepth = function() { var ar = []; var result = $([]); $(this).each(function()
我的页面上有多个图像。为了检测损坏的图像,我使用了在 SO 上找到的这个。 $('.imgRot').one('error',function(){ $(this).attr('src','b
我在理解 $ 符号作为 jQuery 函数的别名时遇到了一些麻烦,尤其是在插件中。你能解释一下 jQuery 如何实现这种别名:它如何定义 '$' 作为 jQuery 函数的别名?这是第一个问题。 其
我是一名优秀的程序员,十分优秀!