【发布时间】:2017-01-15 15:56:33
【问题描述】:
我正在开发一个需要使用指令的项目,我让我的指令工作绑定到 ngModel,但我意识到我需要绑定多个值,当我将代码更改为绑定值和 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>
【问题讨论】:
-
我认为 scope inside 指令没有'$',所以 var controller = ['$scope', function ($scope) { 应该是 var controller = ['scope', function (scope) {
-
我不认为这是我尝试过的问题,它破坏了我的复选框功能,部分代码工作正常,只是双向绑定。
-
你在哪里得到未定义的?您需要向我们展示指令模板或制作一个重现您的错误的小提琴。
-
不要使用
value作为自定义属性名称。该属性名称已被浏览器使用。
标签: javascript angularjs binding directive