angularJS href 行为指令
angularJS directive for href behavior
我正在尝试将 href 行为添加到标签中。如何才能做到这一点?
angular 指令中有没有办法将相同的行为添加到其他 html 标签。
我已经添加了
<div click-element="#/page1/test?Tab=1/">
但是我将 URL 作为参数传递时出现以下词法分析器错误:
"stack": "Error: [$parse:lexerr] Lexer Error: Unexpected next character at columns 0-0 [#] in expression [#/page1/test?Tab=1/].
如何将 URL 作为属性参数传递?
已更新
我希望 click-element 指令成为处理导航的指令。该元素更像是:
<div click-element="#/page1/test?Tab=1/">
在点击元素指令中:
function clickElement( $location) {
var clickElementDefinition = {
restrict: 'A',
scope: {
clickElement: "="
},
link: clickElementMethod
};
return clickElementDefinition ;
function clickElementMethod(scope, element, attrs) {
element.bind('click', function (event) {
if (scope.clickElement) {
var arr = scope.clickElement.split("?");
var queryParam = arr[1].split("=") || "";
$location.path(arr[0]).search(queryParam[0], queryParam[1]);
}
});
}
};
我仍然在指令加载时遇到词法分析器错误。
您需要向点击元素添加第二组引号或使用 attrs.clickElement 而不是范围。
<div click-element="'#/page1/test?Tab=1/'">
或
function clickElementMethod(scope, element, attrs) {
element.bind('click', function (event) {
if (attrs.clickElement) {
var arr = attrs.clickElement.split("?");
var queryParam = arr[1].split("=") || "";
$location.path(arr[0]).search(queryParam[0], queryParam[1]);
}
});
}
或
scope: {
clickElement: "@"
},
我正在尝试将 href 行为添加到标签中。如何才能做到这一点? angular 指令中有没有办法将相同的行为添加到其他 html 标签。
我已经添加了
<div click-element="#/page1/test?Tab=1/">
但是我将 URL 作为参数传递时出现以下词法分析器错误:
"stack": "Error: [$parse:lexerr] Lexer Error: Unexpected next character at columns 0-0 [#] in expression [#/page1/test?Tab=1/].
如何将 URL 作为属性参数传递?
已更新
我希望 click-element 指令成为处理导航的指令。该元素更像是:
<div click-element="#/page1/test?Tab=1/">
在点击元素指令中:
function clickElement( $location) {
var clickElementDefinition = {
restrict: 'A',
scope: {
clickElement: "="
},
link: clickElementMethod
};
return clickElementDefinition ;
function clickElementMethod(scope, element, attrs) {
element.bind('click', function (event) {
if (scope.clickElement) {
var arr = scope.clickElement.split("?");
var queryParam = arr[1].split("=") || "";
$location.path(arr[0]).search(queryParam[0], queryParam[1]);
}
});
}
};
我仍然在指令加载时遇到词法分析器错误。
您需要向点击元素添加第二组引号或使用 attrs.clickElement 而不是范围。
<div click-element="'#/page1/test?Tab=1/'">
或
function clickElementMethod(scope, element, attrs) {
element.bind('click', function (event) {
if (attrs.clickElement) {
var arr = attrs.clickElement.split("?");
var queryParam = arr[1].split("=") || "";
$location.path(arr[0]).search(queryParam[0], queryParam[1]);
}
});
}
或
scope: {
clickElement: "@"
},