我已为我的Angular应用定义了一个名为value
的{{1}}。我想从我所拥有的指令的myValue
方法访问myValue
,但我无法完成这项工作。这是我的代码:
link
你有什么建议吗?
提前谢谢。
答案 0 :(得分:1)
只需在函数内使用它:
scope.myFunction = function() {
console.log(myValue);
}
它将使用angularjs DI注入指令函数,并可通过闭包在myFunction
内访问。
答案 1 :(得分:0)
您也可以使用constant
。只需定义它并传递给您的指令。 valueFromYourConstant
- 是一个如何访问常量值的示例。
angular
.module('extApp')
.constant('CONSTANT_NAME', {
values: {
"foo": null,
"bar": null
}
})
.directive('myDirective', ['constants', 'myValue', 'CONSTANT_NAME' function(constants, myValue, CONSTANT_NAME) {
var valueFromYourConstant = CONSTANT_NAME.values["foo"];
}
答案 2 :(得分:0)
您可以通过要求ngModel来访问放置指令的元素的ng-model。还可以使用scope.variableName
访问其他范围变量您可以参考以下示例代码,其中有两个输入字段,一个用于密码,另一个用于确认密码。该指令只是将确认密码与原始密码匹配,并将控制器变量passmatch设置为true或false:
我的指示:
app.directive('matchPassword', function() {
return {
restrict: 'A',
require: 'ngModel',
link: function(scope, element, attr, ctrl) {
function passwordMatcher(ngModelValue) {
if (ngModelValue == scope.password) {
ctrl.$setValidity('passMatch', true);
} else {
ctrl.$setValidity('passMatch', false);
}
return ngModelValue;
}
ctrl.$parsers.push(passwordMatcher);
}
};
});
我的HTML:
<div class="form-group form-group-default">
<label>Password</label>
<input type="password" name="password" ng-model="password" placeholder="Minimum of 6 Characters" class="form-control" valid-password required>
</div>
<div class="form-group form-group-default">
<label>Confirm Password</label>
<input type="password" name="cpassword" ng-model="cpassword" placeholder="Confirm password" class="form-control" match-password required>
</div>