Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS:操纵未知$元素的$范围_Javascript_Angularjs_Attributes_Scope_Angularjs Directive - Fatal编程技术网

Javascript AngularJS:操纵未知$元素的$范围

Javascript AngularJS:操纵未知$元素的$范围,javascript,angularjs,attributes,scope,angularjs-directive,Javascript,Angularjs,Attributes,Scope,Angularjs Directive,新的角度。 我正在为整个项目创建一个全局使用的指令(属性)。我使用的是一个本地存储函数,我的目的是让属性所在的元素相应地更改其值/文本。以下是HTML: <input type="email" name="username" placeholder="Email Address" ng-model='username' loadstorage="USERNAME" /> 你可以想象,这是行不通的。所以我需要的是一种操作调用函数的元素范围的方法。 到目前为止,我尝试的是: $elem

新的角度。 我正在为整个项目创建一个全局使用的指令(属性)。我使用的是一个本地存储函数,我的目的是让属性所在的元素相应地更改其值/文本。以下是HTML:

<input type="email" name="username" placeholder="Email Address" ng-model='username' loadstorage="USERNAME" />
你可以想象,这是行不通的。所以我需要的是一种操作调用函数的元素范围的方法。 到目前为止,我尝试的是:

$element.val(localStorage.get(attrs.loadstorage));
它工作,但只有当我删除元素的ng模型时,不幸的是,我需要它用于项目中的其他目的

angular.element($element).scope();
有了这个,我可以访问范围,但无法操作它。下面是我所说的plunker示例:
任何帮助都将不胜感激。

您的指令可能应该通过
ngModel
controller()操作该值:

请参见叉形插入:

angular.element($element).scope();
.directive("loadstorage", function (localStorage) {
    return {
        require: ["ngModel"],
        link: function(scope, element, attrs, controllers) {
            var ngModel = controllers[0],
                val = localStorage.get(attrs.loadstorage);
            element.val(val);
            ngModel.$setViewValue(val);
        }
    };
});