ng-click 在 ajax 数据表 + codeigniter 中不起作用

Posted

技术标签:

【中文标题】ng-click 在 ajax 数据表 + codeigniter 中不起作用【英文标题】:ng-click not working in ajax datatable + codeigniter 【发布时间】:2018-12-11 12:43:07 【问题描述】:

我有一个案例,带有选项编辑和删除数据的 CRUD 数据。但我有约束 ng-click=() 不能在控制器 ajax_list() 调用中工作:

这是我的代码:

用户控制器(CI)

public function ajax_list()
        $lists = $this->model_user->get_datatables();
        $data = array();
        $no = $_POST['start'];
        $nomor = 1;
        foreach($lists as $key => $item)
            $no++;
            $row = array();
            $row[] = $item->username;
            $row[] = '<a type="button" class="btn btn-xs btn-warning" href="#/editUser/'.$item->kode_user.'" title="Edit" ><i class="fa fa-pencil" ></i></a>
                    <button type="button" class="btn btn-xs btn-danger" ng-click="deleteUser()" title="Hapus"><i class="fa fa-trash"></i></button>';
            $data[] = $row;
        
        $output = array(
            "draw" => $_POST['draw'],
            "recordsTotal" => $this->model_user->count_all(),
            "recordsFiltered" => $this->model_user->count_filtered(),
            "data" => $data
        );
        echo json_encode($output);
    

script.js(angularjs)

var inticafeApp = angular.module('inticafeApp', ['ngRoute']);
inticafeApp.config(function ($routeProvider, $locationProvider) 
    $locationProvider.hashPrefix('');
    $routeProvider
    .when('/', 
        templateUrl: 'dashboard/index',
        controller: 'dashboardController'
    )

    .when('/user', 
        templateUrl: 'masterdata/user',
        controller: 'userListController'
    )

);

inticafeApp.controller('userListController', function ($scope) 
    $scope.deleteUser = function () 
        // $http.post(siteUrl + "masterdata/user/delete" + id).success(function (response)  alert('yes'))
        alert('a');
    
)

在 $row[] 我从 php 渲染 html 但 ngclick 不起作用。

你能帮帮我吗?

【问题讨论】:

***.com/questions/14242455/… @sintakonte,我认为那篇文章不太合适,因为我的数据表是服务器端 这就是问题所在——我很确定你的角度控制器在你获取数据之前就已经初始化了——因此角度不可能触发这个点击事件——你需要一个指令或类似的东西——可能最好使用一些库 - 看看这里l-lin.github.io/angular-datatables/archives/#!/welcome 【参考方案1】:

尽量避免将 PHP 用于 HTML 输出。如果你用 trustAsHtml 或类似的东西添加它,它不会被 angularjs 编译。最好只返回数组中的$item-&gt;kode_user,然后使用ng-repeat 在页面上打印出来。

【讨论】:

以上是关于ng-click 在 ajax 数据表 + codeigniter 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Angularjs ng-click:如何获取`this`数据?

PHP/Ajax PDF 生成超时

将 onclick/ng-click 事件附加到网格数据绑定事件中的元素

ng-click 不起作用,mysql 中没有发布数据

Angular Js中的JQuery数据库Ng-Click无法正常工作?

Angular `ng-click` 在 DataTables 表行中不起作用