Javascript 角度获取语法错误:标记';:';是从JSON访问URL时出现的意外标记
我有以下json,我正在从中提取Javascript 角度获取语法错误:标记';:';是从JSON访问URL时出现的意外标记,javascript,angularjs,angular-directive,Javascript,Angularjs,Angular Directive,我有以下json,我正在从中提取tweeturl { "name": "Lifehacker", "handle": "@lifehacker", "avatar": "images/lifehacker.png", "time": "1h", "tweet": "Workflow, the nifty automation app on iOS, just got a heck of a lot easier to use: ", "attachments": {
tweeturl
{
"name": "Lifehacker",
"handle": "@lifehacker",
"avatar": "images/lifehacker.png",
"time": "1h",
"tweet": "Workflow, the nifty automation app on iOS, just got a heck of a lot easier to use: ",
"attachments": {
"media": "image",
"url": "images/twitter.jpg"
},
"tweeturl": "http://lifehac.kr/L18xlfM",
"interaction": {
"like": "2m",
"retweet": "5k"
}
}
并以如下方式显示:
<a href="{{tweets.tweeturl}}" ng-show="{{tweets.tweeturl}}">{{tweets.tweeturl}}</a>
function someFunction () {
var abc = '123';
http://lifehac.kr/L18xlfM // <- this is not a correct expression
return abc;
}
但每次它执行时,我都会得到URL,但控制台上也会收到错误消息
语法错误:标记“:”是表达式第5列的意外标记[http://lifehac.kr/L18xlfM]从[://lifehac.kr/L18xlfM]开始。
对于任何帮助和解释,我都是新手,我将不胜感激
ng show
需要一个表达式(例如,范围变量中定义的、计算结果为truthy或falsy值的名称),而不是字符串
您不必使用{{}
语法对其进行插值。直接传递变量即可:
<a href="{{tweets.tweeturl}}" ng-show="tweets.tweeturl">{{tweets.tweeturl}}</a>
ng show
要求的是表达式(例如,范围变量中定义的名称,其计算结果为truthy或falsy值),而不是字符串
您不必使用{{}
语法对其进行插值。直接传递变量即可:
<a href="{{tweets.tweeturl}}" ng-show="tweets.tweeturl">{{tweets.tweeturl}}</a>
如果我能给出一些如何使用ng show和ng href的例子,这两个例子就是 首先,我将在我的控制器上放置一个$scope或$this变量,并将您从服务中获得的JSON答案分配给它($http??)。然后将错误变量设置为true或false
$http.get("tweets.json").then(function(response) {
//First function handles success
$scope.content = response.data;
$scope.errorGet = false;
}, function(response) {
//Second function handles error
$scope.content = "Something went wrong";
$scope.errorGet = true;
});
鉴于您现在可以确定是否收到Json推文,您可以在视图中重构:
<a href="{{tweets.tweeturl}}" ng-show="errorGet">{{tweets.tweeturl}}</a>
现在我们已经设置好了,我需要解释为什么不应该使用href,而应该使用ng href。在单击链接之前,可以对表达式{{}求值
因此,重构代码的正确方法是:
<a ng-href="{{tweets.tweeturl}}" ng-show="errorGet">{{tweets.tweeturl}}</a>
链接到ng href文档
如果我能给出一些如何使用ng show和ng href的示例,希望对您有所帮助 首先,我将在我的控制器上放置一个$scope或$this变量,并将您从服务中获得的JSON答案分配给它($http??)。然后将错误变量设置为true或false
$http.get("tweets.json").then(function(response) {
//First function handles success
$scope.content = response.data;
$scope.errorGet = false;
}, function(response) {
//Second function handles error
$scope.content = "Something went wrong";
$scope.errorGet = true;
});
鉴于您现在可以确定是否收到Json推文,您可以在视图中重构:
<a href="{{tweets.tweeturl}}" ng-show="errorGet">{{tweets.tweeturl}}</a>
现在我们已经设置好了,我需要解释为什么不应该使用href,而应该使用ng href。在单击链接之前,可以对表达式{{}求值
因此,重构代码的正确方法是:
<a ng-href="{{tweets.tweeturl}}" ng-show="errorGet">{{tweets.tweeturl}}</a>
链接到ng href文档
希望有帮助你知道ng show的作用吗?如果条件成立,则显示元素http://lifehac.kr/L18xlfM对你来说像是“条件”吗?我也试过
{{{tweets.tweeturl}!=''代码>但它给出了错误语法错误:Token'!='在表达式的第1列中不是主表达式,
因为@JaromandaX避开了。。。ng show指令被误用并导致您的问题。您知道ng show的作用是什么吗?如果条件成立,则显示元素的作用是http://lifehac.kr/L18xlfM
对你来说像是“条件”吗?我也试过{{{tweets.tweeturl}!=''代码>但它给出了错误语法错误:Token'!='在表达式的第1列中不是主表达式,
因为@JaromandaX避开了。。。ng show指令被误用并导致您的问题。您还应该使用ng href
,以防用户单击时它尚未完成消化。链接到angular doc是的,ng url
和ng href
为我解决了这个问题,感谢您提供的宝贵提示:)如果用户单击时它还没有完成消化,您也应该使用ng href
。链接到angular doc是的,ng url
和ng href
为我解决了这个问题,感谢您提供的宝贵提示:)