ajax返回后角度模态不起作用

时间:2014-07-21 13:38:25

标签: jquery ajax asp.net-mvc angularjs

所以我有一个按钮:

 <button type="button" ng-click="open('new_cm')" class="btn btn-primary" id="prideti">Add

调用模式打开

我正在使用AJAX重新加载我的html内容(其中包含该按钮) 刷新数据后按钮不起作用。也许ng-click需要以某种方式灌输?

ajaxification:

<script>

    function ajaxifyGridMvc(gridContainerSelector, successCallback) {
        $(gridContainerSelector).on("click", ".grid-header a, .grid-pager li a",
            function (event) {
                var $grid_container = $(event.delegateTarget);
                var baseUrl = $grid_container.attr("data-source-url");
                var link = $(this).attr("href");
                $.get(baseUrl + link, function (data) {
                    if (data.Status <= 0) {
                        alert(data.Message);
                        return;
                    }
                    $grid_container.html(data);
                    if ($.isFunction(successCallback))
                        successCallback();
                });

                return false;
            });
    }

</script>

页面加载上的ajaxification:

   <script>
        $(document).ready(function () {
            ajaxifyGridMvc("#mylists");
        });</script>

此处进行了更改:

        <div id="mylists" data-source-url="@Url.Action("markemodelis")">
            @{Html.RenderAction("markemodelis");}
        </div>

打开()js:

  if (size == "new_cm") {
        modalInstance = $modal.open({

            templateUrl: '/Administration/CreateMM',
            controller: ModalInstanceCtrl,
            size: size,
            resolve: {
                items: function () {

                    return $scope.items;
                }
            }

        });
    }

1 个答案:

答案 0 :(得分:0)

你的问题是你在角度之外做得太多了。当您使用其中包含的指令注入html时,angular不知道它们存在。

您必须在指令中使用$compile来编译具有当前范围上下文的指令,否则它们将无法在角度内被识别。

由于您所展示的只是jQuery而且没有html,因此很难告诉您应用此指令的位置。

你最好摆脱jQuery并按照设计工作的方式工作

请参阅:How do I “think in AngularJS” if I have a jQuery background?