【问题标题】:How to make a function call with ng-checked : Angularjs如何使用 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.. 我已经更新了我的代码,请检查一下。

标签: javascript jquery angularjs checkbox


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2014-03-09
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-10
    • 1970-01-01
    • 2012-12-22
    相关资源
    最近更新 更多