Javascript 角度获取语法错误:标记';:';是从JSON访问URL时出现的意外标记

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": {

我有以下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": {
    "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
为我解决了这个问题,感谢您提供的宝贵提示:)