ui-sref="field.productAttrDetail({id: li.id})">编辑</button>
ui-sref="field.productAttrDetail">新增
然后跳转到Detail页面
在写内容的地方双向绑定一波:(还会添加一些表单验证的东西)
ng-model="vm.data.values"
在最下边那个提交或者保存按钮上 写一波点击事件
ng-click="vm.addOrUpdate()"
然后跳转到ctrl文件中:
if(vm.id){
productService.getProduct(vm.id).then(function(res){
vm.data = res.data.obj;
});
}
vm.addOrUpdate = function(){
vm.data.type = PRODUCT[0].id;
productService.addOrUpdate(vm.id, vm.data, 'field.productAttr');
}
上边那个if是如果有id的话就直接读出来,跟下边这个方法不相关
下边这个方法:vm.data.type看接口文档
addorupdata后的参数中vm.id 是传id的 vm.data是把所有的绑定的vm.data传过去,再后边是点击这个按钮之后的跳转的地址。
然后点addorupdata跳转到servce文件中://新增或修改
addOrUpdate: function(id, param, url){
if(id) {
this.updateProduct(id, param).then(function(res){
$state.go(url, {}, {reload: true});
});
} else {
this.addProduct(param).then(function(res){
$state.go(url, {}, {reload: true});
});
}
}
传过来了三个参数,如果有id的话就执行updata这个函数,
(其中:执行完了那个函数就跳转 跳转的 go 就是这么写:$state.go(url,{},{reload:true}))
这个函数是:
//2.修改
updateProduct: function(id,params){
return $http.put(project_path.updateOrDeleteOrGetProduct(id),params);
},
点击updateordeleteorget跳转到上边的地址
//2.修改3.删除 4、根据ID查询单个
updateOrDeleteOrGetProduct: function(id){
return "/ajax/1.0/property/globalproperty/"+id;
},
传到这个地址中。
同理:如果没有id就去新增
//1.新增
addProduct: function(params) {
return $http.post(project_path.addProduct,params);
},
//1.新增
addProduct: "/ajax/1.0/property/globalproperty",