如何使用 ng-checked 进行函数调用:Angularjs

Posted

技术标签:

【中文标题】如何使用 ng-checked 进行函数调用:Angularjs【英文标题】:How to make a function call with ng-checked : Angularjs 【发布时间】:2018-07-11 11:31:13 【问题描述】:

当我选中一个复选框时,我需要显示数据(例如,当我单击多个复选框时,我应该获取有关所有复选框值的数据)为此我尝试了 ng-checked 并调用了该指令中的函数,但是当我已经在我的代码中写了这个,发生了一件非常荒谬的事情,我的系统被挂起。所以我写了 ng-change 来显示我的代码。

 <div class="checkbox checkbox-warning">
      <input type="checkbox" ng-model= "fields" value="f.id" class="styled" id="function-f.id" ng-change="filter_fields(f.id); field_work_by_id(f.id);">
      <label for="function-f.id">f.name</label>
 </div>  

在角度控制器中

   $scope.get_work_fields = function()
        Data.getWorkFields().success(function (data) 
            $scope.fields = data;

        );
    ;

    //where data in f getting from fields

    $scope.field_work_by_id = function($id)
        Data.fieldWorkById($id).success(function (data) 
            $scope.fieldswork = data;

        );
    ;

在服务中:

this.getWorkFields = function ($data) 
    return $http.post(site_url + "User/User/getWorkFieldsData" , $data);
;

this.fieldWorkById = function ($data) 
    return $http.post(site_url + "User/User/fieldWorkByIdData/" + $data);
;

在 codeigniter 控制器中:

public function filterFieldsData($id)
    $rs = $this->user->filterFieldsData($id);
    if ($rs) 
        echo json_encode($rs);
     else 
        echo json_encode(array('status' => '0', 'msg' => 'No Result Found'));
    


public function fieldWorkByIdData($id)
    $rs = $this->user->fieldWorkByIdData($id);
    if ($rs) 
        echo json_encode($rs);
     else 
        echo json_encode(array('status' => '0', 'msg' => 'No Result Found'));
    

在模型中:

public function getWorkFieldsData()
    $rs = $this->db->select('jb_work_field.id,jb_work_field.name')
                    ->from('jb_work_field')
                    ->where('jb_work_field.status','Active')
                    ->get()->result();
    return $rs;


public function fieldWorkByIdData($id)
    $rs = $this->db->select('jb_work_field.id,jb_work_field.name')
                    ->from('jb_work_field')
                    ->where('jb_work_field.status','Active')
                    ->where('jb_work_field.id',$id)
                    ->get()->result();
    return $rs;

所以,请建议我在单击多个复选框后如何获取数据。 提前致谢。

【问题讨论】:

请显示完整的代码,例如filter_fields()、field_work_by_id()和f是什么? @Marcus Höglund.. 我已经更新了我的代码,请检查一下。 【参考方案1】:

在 NgChange 指令中声明函数时,函数需要在当前 (angularjs) 范围内。在您的情况下,angularjs 不会在名为 filter_fields 的范围内找到任何方法,因为它们是 codeigniter 控制器的一部分。 尝试重构代码,以便您一直使用 angularjs:在 angularjs 中创建过滤器方法 = 检查自定义过滤器部分 here 了解如何操作。

【讨论】:

以上是关于如何使用 ng-checked 进行函数调用:Angularjs的主要内容,如果未能解决你的问题,请参考以下文章

使用 ng-model 进行 ng-checked 的单选按钮

如何正确设置 PhpStorm? Сan't run PHPUnit on Laravel 8 on Windows 10. 调用未定义函数 Tests\Unit\is_id_term()

angularjs如何默认选中radio

glibc库函数,系统调用API

来自逗号分隔值的 ng-if 或 ng-checked 匹配

ng-checked选择和点击增加dom