gpt4 book ai didi

javascript - AngularJS 两种方式绑定(bind)返回未定义

转载 作者:行者123 更新时间:2023-11-28 05:35:42 25 4
gpt4 key购买 nike

我正在开发一个需要使用指令的项目,我的指令绑定(bind)到 ngModel 但我意识到我需要绑定(bind)多个值,当我更改代码以绑定(bind) value 和 staticValue 时,范围变量分配给现在这是未定义的。下面是我的代码,

var app = angular.module('fieldSelectCheck', []);
app.directive('fieldSelectCheck', function () {

var controller = ['$scope', function ($scope) {

$scope.checkBoxClick = function () {
if ($scope.isChecked === true) {
$scope.fieldToggle = true;
} else {
$scope.fieldToggle = false;
$scope.staticValue = "";
}
};

}],

url = 'Custom/BSI_iMIS_Importer/App/Directives/fieldSelectCheck.html';

return {
restrict: 'EA',
templateUrl: url,
scope: {
fieldName: '@',
fieldText: '@',
options: '=',
checkBoxClick: '@',
isChecked: '@',
fieldToggle: '=?bind',
value: '=',
staticValue: '='
},
controller: controller
};
});

HTML 模板

<div class="form-group row" data-ng-app="app">
<label for="{{fieldName}}" class="col-lg-2 form-control-label text-right">{{fieldText}}</label>
<div class="col-lg-3" data-ng-hide="fieldToggle">
<select class="form-control" name="{{fieldName}}" data-ng-model="value" data-ng-options="option for option in options">
<option value="">-- Please Select A Field --</option>
</select>
</div>
<div class="col-lg-3" data-ng-show="fieldToggle">
<input class="form-control" type="text" data-ng-model="staticValue" />
</div>
<div>
<input type="checkbox" data-ng-model="isChecked" data-ng-change="checkBoxClick()" /> Static Value
</div>
</div>

指令的实现

<field-Select-Check 
field-Name="{{fields}}"
field-Text="{{fields}}"
value="test"
static-Value="$parent[fields].staticValue"
options="userFields"
ng-repeat="fields in nameFields">
</field-Select-Check>

最佳答案

将自定义指令与 ng-repeat 指令分开。自定义指令创建隔离范围。 ng-repeat 指令需要继承范围。

<div ng-repeat="fields in nameFields">
<field-select-check
field-name="{{fields}}"
field-next="{{fields}}"
value="test"
static-value="valueList[fields]"
options="userFields">
</field-Select-Check>
</div>

关于javascript - AngularJS 两种方式绑定(bind)返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39378703/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com