在 textarea 的名称属性中使用的 $index 通过 ng-repeat returns 循环使用 $index 作为指令中的字符串
$index used in name attribute of textarea lopped through ng-repeat returns with $index as string in the directive
我的文本区HTML:
<div data-ng-repeat="(key, contents) in growthEnvData.product_features" class="tile-inner tile-fixed">
<textarea placeholder="Enter Product Pricing" class="form-placeholder features" ng-model="contents.features" rows="1" style="height:150px;" name="features-{{$index}}" ></textarea>
</div>
Angular JS指令:
app.directive('ckEditorInline', function () {
return {
require: '?ngModel',
link: function (scope, elm, attr, ngModel) {
var eleName = attr.name;
var ck = CKEDITOR.inline(eleName);
if (!ngModel) return;
ck.on('instanceReady', function () {
ck.setData(ngModel.$viewValue);
});
function updateModel() {
scope.$apply(function () {
ngModel.$setViewValue(ck.getData());
});
}
ck.on('change', updateModel);
ck.on('key', updateModel);
ck.on('dataReady', updateModel);
ngModel.$render = function (value) {
ck.setData(ngModel.$viewValue);
};
}
};
当我在指令中得到 attr.name 时,它 returns features-{{$index}} 而不是 features-0。我希望它是 features-0。这该怎么做?请帮忙。
app.directive('ckEditorInline', function ($timeout) {
return {
require: '?ngModel',
link: function (scope, elm, attr, ngModel) {
$timeout(function(){
var ck = CKEDITOR.inline(elm[0]);
if (!ngModel) return;
ck.on('instanceReady', function () {
ck.setData(ngModel.$viewValue);
});
function updateModel() {
scope.$apply(function () {
ngModel.$setViewValue(ck.getData());
});
}
ck.on('change', updateModel);
ck.on('key', updateModel);
ck.on('dataReady', updateModel);
ngModel.$render = function (value) {
ck.setData(ngModel.$viewValue);
};
}, 2000);
}
};
});
我在 2 秒后通过将超时设置为快速修复来尝试 运行 代码,现在它工作正常。如果您有任何替代解决方案,请告诉我。
问题在于在单个页面中初始化多个内联 ckeditor。
我的文本区HTML:
<div data-ng-repeat="(key, contents) in growthEnvData.product_features" class="tile-inner tile-fixed">
<textarea placeholder="Enter Product Pricing" class="form-placeholder features" ng-model="contents.features" rows="1" style="height:150px;" name="features-{{$index}}" ></textarea>
</div>
Angular JS指令:
app.directive('ckEditorInline', function () {
return {
require: '?ngModel',
link: function (scope, elm, attr, ngModel) {
var eleName = attr.name;
var ck = CKEDITOR.inline(eleName);
if (!ngModel) return;
ck.on('instanceReady', function () {
ck.setData(ngModel.$viewValue);
});
function updateModel() {
scope.$apply(function () {
ngModel.$setViewValue(ck.getData());
});
}
ck.on('change', updateModel);
ck.on('key', updateModel);
ck.on('dataReady', updateModel);
ngModel.$render = function (value) {
ck.setData(ngModel.$viewValue);
};
}
};
当我在指令中得到 attr.name 时,它 returns features-{{$index}} 而不是 features-0。我希望它是 features-0。这该怎么做?请帮忙。
app.directive('ckEditorInline', function ($timeout) {
return {
require: '?ngModel',
link: function (scope, elm, attr, ngModel) {
$timeout(function(){
var ck = CKEDITOR.inline(elm[0]);
if (!ngModel) return;
ck.on('instanceReady', function () {
ck.setData(ngModel.$viewValue);
});
function updateModel() {
scope.$apply(function () {
ngModel.$setViewValue(ck.getData());
});
}
ck.on('change', updateModel);
ck.on('key', updateModel);
ck.on('dataReady', updateModel);
ngModel.$render = function (value) {
ck.setData(ngModel.$viewValue);
};
}, 2000);
}
}; });
我在 2 秒后通过将超时设置为快速修复来尝试 运行 代码,现在它工作正常。如果您有任何替代解决方案,请告诉我。 问题在于在单个页面中初始化多个内联 ckeditor。