我有一个包含ng
repeat指令和两个按钮的html表。第一个将打开一个包含新表单的模式,让我创建我的用户,然后单击保存将其添加到列表中。具有相同的原始格式并添加用户。
我不明白为什么当我单击形式不同的第一个按钮时我无法更新ng重复,但是对于第二个它却是可能的。这是代码:
homepage.jsp
<body ng-app="myApp">
<div class="generic-container" ng-controller="UserController as ctrl">
<div id="createUserContent.jsp" ng-include="createUserContent"></div>
<table>
<tr>
<td>
<button type="button" class="btn btn-primary"
ng-click="ctrl.openCreateUser()">Create</button>
</td>
</tr>
</table>
<table class="table table-hover">
<thead>
<tr>
<th>ID.</th>
<th>Name</th>
<th>Address</th>
<th>Email</th>
<th width="20%"></th>
</tr>
</thead>
<tbody>
<tr ng-repeat="u in ctrl.users">
<td><span ng-bind="u.ssoId"></span></td>
<td><span ng-bind="u.firstName"></span></td>
<td><span ng-bind="u.lastName"></span></td>
<td><span ng-bind="u.email"></span></td>
</tr>
</tbody>
</table>
</div>
</body>
user_controller.js
'use strict';
App.controller('UserController', function ($scope, UserService, $window, $log, $uibModalStack,
$uibModal, $rootScope) {
var self = this;
self.users = [];
self.fetchAllUsers = function () {
console.log('----------Start Printing users----------');
for (var i = 0; i < self.users.length; i++) {
console.log('FirstName ' + self.users[i].firstName);
}
};
/**
this function will not work
**/
self.saveUser = function (user) {
self.users.push(user);
self.fetchAllUsers();
$log.log("saving user");
$uibModalStack.dismissAll();
};
/**
this function works fine
**/
self.addNewRow = function () {
var specialUser = {
id : 12,
firstName : 'john',
lastName: 'travolta',
homeAddress : {location:'chicago'},
email : 'trav@email.com'
};
self.users.push(specialUser);
$log.log("saving specialUser");
};
self.openCreateUser = function () {
var modalInstance = $uibModal.open({
animation : true,
templateUrl : 'createUserContent',
controller : 'UserController',
resolve : {
items : function () {
return $scope.items;
}
}
});
modalInstance.result.then(function (selectedItem) {
$scope.selected = selectedItem;
}, function () {
$log.info('Modal dismissed at: ' + new Date());
});
};
self.fetchAllUsers();
});
createUserContent.jsp
<form role="form" ng-controller="UserController as ctrl" >
<div class="form-group">
<label for="FirstName">FirstName</label> <input type="FirstName"
ng-model="ctrl.user.firstName" class="form-control"
id="FirstName" placeholder="Enter FirstName" /> <label
for="lastName">lastName</label> <input type="lastName"
class="form-control" id="lastName"
ng-model="ctrl.user.lastName" placeholder="Enter lastName" />
<label for="email">Email address</label> <input type="email"
ng-model="ctrl.user.email" class="form-control" id="email"
placeholder="Enter email" />
</div>
<div class="form-group">
<label for="homeAddressLocation">Home Address</label> <input class="form-control"
ng-model="ctrl.user.homeAddress.location" id="homeAddressLocation"
placeholder="homeAddressLocation" />
</div>
<div class="form-group">
<label for="SSOId">SSOId</label> <input class="form-control"
ng-model="ctrl.user.ssoId" id="SSOId" placeholder="SSOId" />
</div>
<button type="submit" class="btn btn-default"
ng-click="ctrl.saveUser(ctrl.user)">Save</button>
<button type="submit" class="btn btn-default">Cancel</button>
</form>
因为你的模式模板无法访问您的UserController
对象,因为你在模式模板一样使用并没有显示错误 controlle
[R所以重新装入新的Ctrl
不指父Ctrl
。
但是最好使用不同的 控制器 并将父 控制器 对象传递给模态 控制器 ,然后模体可以使用所有父对象。所以你应该将父对象传递给模态 控制器 。
当您createUserContent.jsp
在主文件中包含弹出文件时,则无需ng-controller="UserController as ctrl"
在modalInstance中使用的模态模板中使用controller : 'Ctrl',
喜欢:
var modalInstance = $uibModal.open({
templateUrl: 'createUserContent.jsp',
controller: 'ModalCtrl', // ModalCtrl for modal
controllerAs:'modal', // as modal so no need to use in modal template
size: 'lg',
resolve: {
items: function () {
return $scope.items;
},
parent: function(){ // pass self object as a parent to 'ModalCtrl'
return self;
}
}
和ModalCtrl
这样的:
.controller('ModalCtrl', ['parent', function (parent) {
this.parent = parent;
}]);
这里用于ModalCtrl
模态,modal
因此您可以访问父对象,例如:modal.parent.user
模板如下:
<form role="form" >
<div class="form-group">
<label for="FirstName">FirstName</label> <input type="FirstName"
ng-model="modal.parent.user.firstName" class="form-control"
id="FirstName" placeholder="Enter FirstName" />
.....
....
<button type="submit" class="btn btn-default"
ng-click="modal.parent.saveUser(modal.parent.user)">Save</button>
<button type="submit" class="btn btn-default">Cancel</button>
</form>
更多详细信息,请访问PLUNKER DEMO
问题内容: 看来AngularJS的不起作用。它不适用于数字字符串。难道我做错了什么?我应该使用吗? 我需要一些东西来查看字符串是否是一个数字(实际上是一个数字),除非我乘以1,否则我不会这么做,但是如果我这样做,那么它将始终为真。另外是不是一个数字(定义)等应该返回false。 问题答案: 在 JavaScript中 ,。 例如,如果需要将 字符串 识别为 Number ,则将其转换为 Numb
问题内容: 我试图通过使用该方法销毁所有会话变量,但是在使用此方法之后,这些值不会被销毁。 为什么不工作? 还有其他方法可以销毁PHP中的会话吗? 问题答案: 使用后,会话将在后台被销毁。由于某种原因,这不会影响已为此请求填充的中的值,但在以后的请求中将为空。 如果需要,您可以手动清除()。
问题内容: 这是我的代码: 这是我的输出: 我的理解 是。因此,应该首先一个号码,然后松开,然后给到线或。所以,一次应该有一个数字,对吧? 但是为什么我的代码一次是两个或三个数字?我做错什么了吗(我是新手)? 问题答案: 虽然确实不是同步的,但是它访问变量。 即使您同步访问权限,它也无济于事,因为下一种情况仍然可能: 线程1增量 线程2增量 线程1的打印值 线程2的打印值 要解决此问题,您需要增加
问题内容: 我在Java中的框架上附加了一个侦听器,当我按任意键时都可以检测到按键,但是发生了一件奇怪的事。我的游戏是扫雷游戏,我有一个重新启动按钮,基本上可以清除木板并消除它。奇怪的是,当我用鼠标单击按钮时,一切都可以很好地清除,并且板子仍然保留,但键侦听器停止工作。即使是陌生人,我也有一个jmenuitem,它基本上会自动单击按钮。所以就像restartbutton.doclick() 如果我
问题内容: 为什么这不起作用? 实际上,我所有的元素都不可见。如果我在选择器中删除对的引用,则确实会显示div中的最后一个,但这不是我想要的。 当然,我只能一直保留一个,但这只是一个reveal.js演示文稿,我无法控制JavaScript。 如何选择带有类的div中的最后一个元素?我不想为此使用JavaScript。 问题答案: 您的问题是,您正在阅读并认为它可以用作选择器,而实际上它 仅 表示
我正在使用Xcode在swift中制作一个应用程序,并且我在某些按钮的动画方面遇到了问题。这是我的情况: 我在屏幕中间有三个按钮,在那里我还添加了一些限制。 我需要的是,当点击按钮时,它会到达屏幕的顶部,如第二张带有动画的照片: 我试过这个: 但发生的情况是按钮从屏幕底部出现向上滑动到第一张照片的位置。它不尊重我在动画中写的位置。这可能是由于约束吗?因为我将其垂直和水平居中。 你能帮我把它弄好吗?
问题内容: 我在Ubuntu Hardy VPS上做了一份计划工作,只有一半可以工作,我不知道为什么。这项工作是一个Ruby脚本,它使用mysqldump备份Rails应用程序使用的MySQL数据库,然后将其压缩并使用SFTP上传到远程服务器。 gzip文件已成功创建并复制,但始终为零字节。但是,如果我直接从命令行运行cron命令,它将运行完美。 这是cron工作: 这是datadump.rb:
嗨,我有一个可编辑的表。我想像Excel页面一样改变我的表。我有两个按钮左右,这是我的缩进按钮,用于调整Td内容填充我的要求是1.the第一行TD总是加粗2.and第二行TD将移动20px当它选择并单击左按钮与正常的字体重量3.similar方式下一行TD是移动20在第一次点击40在第二次点击与小字体大小 4.下一步是变成20,40,60px的灰色