如何使用 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()