小编sim*_*aun的帖子

在AngularJS中共享控制器和指令之间的范围

我已经创建了一个包装jQuery插件的指令,并将插件的配置对象从控制器传递给指令.(作品)

在config对象中是我想要在事件上调用的回调.(作品)

在回调中,我想修改控制器的$ scope上的属性,这不起作用.Angular不承认该属性由于某种原因而发生了变化,这使我相信回调中的$ scope与控制器的$ scope不同.我的问题是我不知道为什么.

任何人都能指出我正确的方向吗?


点击这里查看小提琴


app.js

var app = angular.module('app', [])
    .directive('datepicker', function () {
        return {
            restrict: 'A',
            link: function (scope, element, attrs) {
                // Uncommenting the line below causes
                // the "date changed!" text to appear,
                // as I expect it would.
                // scope.dateChanged = true;

                var dateInput = angular.element('.datepicker')

                dateInput.datepicker(scope.datepickerOpts);

                // The datepicker fires a changeDate event
                // when a date is chosen. I want to execute the
                // callback defined in …
Run Code Online (Sandbox Code Playgroud)

angularjs angularjs-directive angularjs-scope

8
推荐指数
1
解决办法
2万
查看次数

在jQuery Validation插件的错误模板中插入一个元素

我正在为我的表单使用jQuery Validation插件.它允许您更改errorElement并使用包装器选项包装 errorElement .但是,我想 errorElement中插入一个元素,如下所示:

<label class="error"><em></em>Error message goes here</label>

有没有简单的方法来完成插入em标签?


我尝试使用errorPlacement选项(见下文)预先添加em标签,但似乎插件正在替换errorElement的内容.

$.validator.setDefaults({
    errorPlacement: function(error, element) {
        error.prepend('<em/>');
        error.insertBefore(element);
    }
});
Run Code Online (Sandbox Code Playgroud)


我还尝试使用showErrors选项预先添加em标签(见下文).再次,似乎插件后来正在替换errorElement的内容.

$.validator.setDefaults({
    showErrors: function(errorMap, errorList) {
        for (var i = 0; i < errorList.length; i++) {
            var error = errorList[i],
                $label = this.errorsFor(error.element),
                $element = $(error.element);

            if ($label.length && $label.find('em').length == 0) {
                $label.prepend('<em/>');
            }
        }

        this.defaultShowErrors();
    }
});
Run Code Online (Sandbox Code Playgroud)


我也尝试修改插件,以便在生成错误元素时,<em>标记被预先添加.这有效,直到我专注于有错误的表单元素,然后删除em标记.(这是因为当我在字段中聚焦和/或键入时,jQuery验证不断更新错误元素的内容,因此擦除了在创建错误元素时添加的em标记.)

validation jquery jquery-plugins jquery-validate

1
推荐指数
2
解决办法
4677
查看次数