在ng-click上进行ng-show不适用于AngularJS

埃里克·米特詹斯(Eric Mitjans)

单击“编辑模式”链接时,我试图显示一些“编辑”图标。到目前为止,我已经尝试用ng-class和ng-show进行ng-click了,但它没有响应。

这是我的html:

<div click-to-edit="questions.n1.name" class="row question"></div>
    <a href="" ng-click="editMode = !editMode">Enter edit mode</a>

以及点击编辑指令:

.directive("clickToEdit", function () {
var editorTemplate = '' +
'<div class="click-to-edit">' +
    '<div ng-hide="view.editorEnabled">' +
        '{{value}} ' +
        '<a class="glyphicon glyphicon-pencil" ng-show="editMode" ng-click="enableEditor()"></a>' +
    '</div>' +
    '<div ng-show="view.editorEnabled">' +
        '<input type="text" class="" ng-model="view.editableValue">' +
        '<a class="glyphicon glyphicon-ok" href="#" ng-click="save()" ></a>' +
        '<a class="glyphicon glyphicon-remove" ng-click="disableEditor()"></a>' +
    '</div>' +
'</div>';

return {
restrict: "A",
replace: true,
template: editorTemplate,
scope: {
    value: "=clickToEdit",
},
link: function (scope, element, attrs) {
    scope.view = {
        editableValue: scope.value,
        editorEnabled: false
    };

    scope.enableEditor = function () {
        scope.view.editorEnabled = true;
        scope.view.editableValue = scope.value;
        setTimeout(function () {
            element.find('input')[0].focus();
            //element.find('input').focus().select(); // w/ jQuery
        });
    };

    scope.disableEditor = function () {
        scope.view.editorEnabled = false;
    };

    scope.save = function () {
        scope.value = scope.view.editableValue;
        scope.disableEditor();
    };

    }
};
})

我还创建了一个Plunker在script.js的第11行上,应该通过在html上单击ng来触发ng-show(第20行)。

我想念什么?我是否必须在指令clicktoEdit中才能触发ng-show?

dfsq

您的指令具有隔离范围,因此editMode在那里不可用。此问题的最简单解决方案是显式引用父范围属性:

<a class="glyphicon glyphicon-pencil" ng-show="$parent.editMode" ng-click="enableEditor()"></a>

演示:http//plnkr.co/edit/8M98LGOfdRrBp5IaaGKZ?p = preview

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

AngularJS ng-show不适用于Viewbag

来自分类Dev

AngularJS ng-show不适用于Viewbag

来自分类Dev

ng-click不适用于AngularJS和dataTables

来自分类Dev

angularJS:ng-show不适用于ng-app吗?

来自分类Dev

ng-hide / ng-show 不适用于使用 ng-click 调用的函数

来自分类Dev

AngularJS ngAnimate 适用于 ng-leave 但不适用于 ng-enter

来自分类Dev

AngularJS中的级联表达式可用于ng-show,但不适用于ng-if

来自分类Dev

ng-show不适用于div上的类

来自分类Dev

ng-show不适用于div上的类

来自分类Dev

AngularJS ng-disabled不适用于列表项

来自分类Dev

AngularJS ng-required不适用于ios

来自分类Dev

AngularJS ng-pattern不适用于我

来自分类Dev

ng-include不适用于angularJS

来自分类Dev

AngularJS:分页不适用于ng-table

来自分类Dev

AngularJS - ngmaxlength 不适用于 ng-required

来自分类Dev

ng-show不适用于UnderscoreJS的_.isNull,但适用于val === null

来自分类Dev

ng-click不适用于ng-if

来自分类Dev

ng-show / ng-hide / ng-if如果不适用于Angular指令

来自分类Dev

ng-if不适用于getDay()

来自分类Dev

Ng样式不适用于背景

来自分类Dev

AngularJS ng-click不适用于动态附加的剑道面板

来自分类Dev

ngAnimate CSS动画不适用于ng-show和ng-hide

来自分类Dev

ng-click不适用于动态包含

来自分类Dev

ng-click不适用于chart.js

来自分类Dev

md-checkbox不适用于ng-click

来自分类Dev

ng-click在ionic中不适用于div

来自分类Dev

ng-click内部指令不适用于infowindow

来自分类Dev

Ng-Click不适用于Compile指令

来自分类Dev

ng-click不适用于外部JavaScript