【问题标题】:AngularJS replace button after Ajax CallAjax调用后AngularJS替换按钮
【发布时间】:2015-05-21 23:02:23
【问题描述】:

我有一个“最喜欢/不喜欢”按钮,一旦用户点击它就会切换它的功能。

<button id="favoriteButton" class="btn btn-default btn-sm" type="button" ng-click="@Model.GetFavoriteClick()">
    <span aria-hidden="true" class="@Model.GetFavoriteClass()"></span> @Model.GetFavoriteText()
</button>     

在我的控制器中,我正在以这种方式处理点击;

$scope.Favorite = function (providerContentId) {
        var request = $http({
            method: "post",
            url: "/api/Favorite",
            params: {
                // query string params
            },
            data: {
                providerContentId: providerContentId
            }
        });
        request.then(function (response) {
            // here is it replacing but new ng-click is not working
             var element = angular.element(document.querySelector('#favoriteButton'));
                element.replaceWith(response.data);
        }, function (response) {
            alert(response.data);
        });
    };

在我搜索时,我发现我会使用 $compile 服务来执行此操作,但我不能 让它工作。

 var content = $(response.data);
                angular.element(document).injector().invoke(function ($compile) {
                    var scope = angular.element(content).scope();
                    $compile(content)(scope);

我该怎么做?

【问题讨论】:

    标签: javascript ajax angularjs


    【解决方案1】:

    你可以试试

    element[0].outerHTML = response.data; 
    

    而不是

    element.replaceWith(response.data);
    

    【讨论】:

    【解决方案2】:

    你应该使用 ng-class

    示例:

      <button ng-class="{'btn-favorite': isFav,'btn-unfavorite': !isFav}" ng-click="Favorite();" id="favoriteButton" class="btn btn-default btn-sm" type="button">
       <span aria-hidden="true" class="@Model.GetFavoriteClass()"></span>
     </button>
    

    并添加您的函数 Favorite() :

    $scope.isFav = ! $scope.isFav;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-26
      • 2013-05-07
      • 1970-01-01
      • 1970-01-01
      • 2020-01-20
      • 1970-01-01
      相关资源
      最近更新 更多