如何将控制权的价值传递给服务

时间:2018-02-01 08:58:29

标签: angularjs

我有按钮,在保存按钮上我需要将所有控件的值传递给服务 我也写了服务代码,我的查询是如何将所有值传递给工厂方法。

帮助我了解如何在给定模型中发送数据?

这是我的模型类:

public class FavouriteSearch
     {
    public int UserID { get; set; }
    public string Module { get; set; }
    public string Name { get; set; }
    public List<Cols> ColList{ get; set; }
}

这是我的本地控制器代码:

$scope.favSearchSave = function () {
var favSearchItemList = [];
$scope.searchName = this.searchName; 
favouriteSearchRepository.saveFavouriteSearch(favSearchItemList).then(
function (result) {
if(result)
notificationService.showType("success", "Favorite search is successfully saved", "");
                },
                function (error) {
                    console.log(error);
                });
 $scope.showFavSearchModal = false;
        };

我正在使用角度模态,所以我需要在弹出保存按钮上保存值。

用户界面代码:

<modal-body>
        <div class="row">
            <div class="col-lg-3 col-md-3 col-xs-3">
                Name
            </div>
            <div class="col-lg-8 col-md-8 col-xs-8">
                <input type="text" style="width:100% !important" ng-model 
               ="searchName" />
            </div>
        </div>
    </modal-body>
 <modal-footer>
<button class="btn btn-primary" ng-click="favSearchSave()">Save</button>
<button class="btn btn-warning" ng-click="favSearchCancel()">Cancel</button>
 </modal-footer>

2 个答案:

答案 0 :(得分:0)

如果使用模态aka ui-bootstrap模式,则可以通过两种方式处理数据保存。用户单击“保存”后,在“模态”保存方法中,您可以将对象传递给服务。或者在您关闭模式时的决心中,您有一个承诺处理成功的保存点击。

无论哪种方式都没问题,在将服务传递给模态时,有关于可测试性容易度的争论,但无论如何都可以。

传递给服务有一个设置和传递对象的方法。服务内部有一个私有变量,用于保存您希望保留的对象。添加get方法以从其他位置获取对象。

简单而经典的角度1范例,用于传递btw控制器,服务,指令,组件。

答案 1 :(得分:0)

这对你有帮助

这里我创建了一个名为$scope.c的对象并将其推送到saveObject Incase中,saveObject是一个无需进行推送的对象。

 var app = angular.module('testApp',[]);
    app.service('favSearchRepo',function(){
      this.saveFavouriteSearch=function(obj){
          console.log(obj)
      };
    })
    app.controller('testCtrl',function($scope,favSearchRepo){
        $scope.c={};
        $scope.favSearchSave = function () {
            var saveObject = [];
             saveObject.push($scope.c)
            favSearchRepo.saveFavouriteSearch(saveObject);
            /*notificationService.showType("success", "it is successfully saved", "");*/
            //$scope.showFavSearchModal = false;
        };
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="testApp" ng-controller="testCtrl">
    <input type="text" ng-model="c.one">
    <input type="text" ng-model="c.two">
    <input type="submit" ng-click="favSearchSave()">
    </div>