如何使用基于角度$resource的值加载表单
How to load form with values based on Angular $resource
我想要 CRUD 操作,以便当用户单击任何特定项目进行编辑时,此表单将填充这些值(用户想要编辑的值)。
这是我的代码.
商店视图.html
<tr data-ng-repeat="store in stores | filter:search | orderBy:'name'">
<td>
{{ store.name }}
</td>
<td class="icons-width">
<a href="#/Store/edit/{{store._id}}" id="edit" data-toggle="tooltip">
<i class="fa fa-pencil fa-fw colorInfo" ></i>
</a>
<a ng-click="deleteStore(store._id)" id="delete" data-toggle="tooltip">
<i class="icon-trash"></i>
</a>
</td>
</tr>
因此,当用户单击特定商店的编辑时,它将转到另一个视图,该视图具有一个表单,该表单将显示用户想要编辑的值。
商店窗体视图.html
form class="form-horizontal" name="store_form" novalidate ng-submit='AddStore()'>
<div class="modal-header">
<h3>Create/Edit Store</h3>
</div>
<div class="modal-body">
<div class="form-group">
<label for="store_Name" class="col-lg-4 form-label">Name:</label>
<div class="col-lg-7">
<input type="text" class="form-control" ng-model="store.name" id="store_Name" name="store_Name" placeholder="Store Name" required/>
<div class="error" ng-show="store_form.store_Name.$dirty && store_form.store_Name.$invalid">
<small class="error errorFields" ng-show="store_form.store_Name.$error.required">
Store Name is required.
</small>
</div>
</div>
</div>
<div class="form-group">
<label for="store_AddressLine1" class="col-lg-4 form-label">Address Line 1:</label>
<div class="col-lg-7">
<input type="text" class="form-control" ng-model="store.address1" id="store_AddressLine1" name="store_AddressLine1" placeholder="Address Line 1" required/>
<div class="error" ng-show="store_form.store_AddressLine1.$dirty && store_form.store_AddressLine1.$invalid">
<small class="error errorFields" ng-show="store_form.store_AddressLine1.$error.required">
Address is required.
</small>
</div>
</div>
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-primary" ng-disabled="store_form.$invalid">
<i class="icon-ok-sign icon-white"></i> Save
</button>
<a class="btn btn-default" href="#/Stores">
<i class="icon-remove-circle" ></i>
Cancel
</a>
</div>
</form>
商店工厂.js
app.factory('Store', function ($resource) {
return {
getAllStores : $resource("/store/list" ,{},{ TypeGetStores:{method: 'get', isArray:true}}),
getStore : $resource("/store/:id" ,{id : @id},{ TypeGetStore:{method: 'get'}}),
};
});
应用.js
var app = angular.module('myApp', ['ngCookies','ngResource', 'ngRoute']);
app.config(function ($routeProvider) {
$routeProvider
.when('/Stores',
{
templateUrl: '/app/partials/StoresListView.html'
})
.when('/Store/edit/:storeId',
{
templateUrl: '/app/partials/StoreFormView.html'
})
.otherwise({ redirectTo: '/Login' });
});
要加载有关商店的信息,您可以在routeProvider
中使用resolve
参数:
.when('/Store/edit/:storeId',
{
templateUrl: '/app/partials/StoresListView.html',
resolve: {app: function($scope,Store,$routeParams) {
$scope.store = Store.getStore({id:$routeParams.id})
}
}
如果一切正常,这就是您的工厂的工作方式(如果该函数真的返回 store。也许它返回带有root的JSON,那么您应该指定如何从该JSON获取存储),而不是控制器中的$ scope.store,并且它将与您在表单中拥有的内容双向绑定。
注意:页面仅在resolve
完全完成后加载。
相关文章:
- Highcharts赢得't加载表单外部文件
- 如何在加载表单时获得对Builder配置的Jenkins果冻脚本中表单元素的引用
- Yii ActiveForm:通过jQuery.load加载表单
- 如何使用基于角度$resource的值加载表单
- 加载表单时在警报框中显示父联系人任务
- 如何在 ajax 加载表单上激活 django form.media javascript
- 在提交时重新加载表单,并提供最新的帖子数据
- Yii 客户端验证在 ajax 加载表单上不起作用
- 在窗口上加载表单未加载
- 如何用数据预加载表单(新操作),然后在Ruby on Rails中提交
- 如何在 IE 中强制重新加载表单
- 使用 ajax 加载表单并使用 jQuery 提交
- 将表单发送到电子邮件地址,还可以从cookie中保存/加载表单
- Jquery实时加载-通过ajax加载表单
- 再次使用ajax加载表单时未选中单选按钮
- 加载表单在同一分区中提交结果
- 加载表单后立即失去焦点
- 在第一部分完成ajax之后加载表单的第二部分
- 如何在不刷新、显示输出、重新加载表单、冲洗和重复的情况下提交表单
- 在对话框中重新加载表单而不重新加载页面