2016-05-22 8 views
-3

自動完了のカスタマーディレクティブのエラーUncaught SyntaxError: Unexpected token)が表示されます。クロムブラウザのコンソールでは、 VM80623:1 Uncaught SyntaxError: Unexpected token)となります。私はVM80623:1をクリックすると、それはファイル名でvoid();を与えるVM80623カスタムdirctiveの "Uncaught SyntaxError:Unexpected token"の取得)

私はリンクを次から次のディレクティブを実装して、同じエラーがある:あなたが同じになります、任意の文字、オートコンプリート検索ボックスを入力し、選択エラー..

リンク:http://www.jitendrazaa.com/blog/salesforce/ajax-based-autocomplete-typeahead-directive-in-angularjs/

(function() { 
    'use strict'; 
    var app = angular.module('app'); 
    app.directive('Autocomplete', ['Authentication', '$http', function(AuthenticationService, $http){ 
     return { 
      restrict : 'AEC', 
      require: 'ngModel', 
      scope: { 
       modeldisplay:'= modeldisplay' 
      }, 
      templateUrl: 'directives/autocomplete/autocomplete.html', 
      link: function(scope, element, attrs, ctrl){ 
       scope.searchCustomer = function(customerSearch){ 
        var params = { 
        'session_key': Authentication.GetSessionKey(), 
        'q': customerSearch 
        }; 
        if (!customerSearch){ 
        return; 
        } 
        var url = config.url+'/api/search'; 
        return $http.post(url, params).then(function(response){ 
         var data = response.data; 
         if(data.error == 0) { 
          scope.TypeAheadData = data.result; 
          return data.result; 
         } 
         }); 
       } 
       scope.handleSelection = function(item){ 
       ctrl.$setViewValue(item); 
       scope.modeldisplay = item; 
       scope.selected = true; 
       }; 
       scope.isCurrent = function(index) { 
       return scope.current == index; 
       }; 
       scope.setCurrent = function(index) { 
       scope.current = index; 
       }; 
      } 
      }; 
     }]); 
    })(); 
+1

下から4行に問題 –

+0

構文を見つけるためにあなたのIDEで、あるいはオンラインの1のいずれか、構文リンターを使用引き起こすことが起こっている末尾のカンマがあります問題。これは、ツールが問題を見つけるために存在する場合、このサイトで質問になってはならないはずです – charlietfl

+0

@charlietfl、これは構文上の問題ではなく、http://www.jitendrazaa.com/blog/salesforce/ajax-based-autocomplete私は何をしているのですか? – Guest

答えて

0

私はコピーして、IntelliJのにコードを貼り付けました。そして問題は、この行のように見える:

var url = config.url'/api/search'; 

あなたは、おそらくこのように、変数と文字列を連結するために何かをする必要があります:

var url = config.url + '/api/search'; 

他のマイナーな構文の一握りがあります。エラー。私はコードが実行されるのを防ぐために何も期待していません。このスニペットで

scope: { 
    modeldisplay:'= modeldisplay', 
}, 

カンマは必要ありません。

scope: { 
    modeldisplay:'= modeldisplay' 
}, 

はsearchCustomerメソッドの末尾にセミコロンを追加します。

scope.searchCustomer = function(customerSearch){ 
    // other code here 
}; 

とコンマですリンク機能の最後には必要ありません。

  } // remove comma here, 
     }; 
    }]); 
})(); 

そして最後に、IntelliJのも$ http.post結果関数に他の戻り値をフラグが付けられ:ここで

    return $http.post(url, params).then(function(response){ 
         var data = response.data; 
         if(data.error == 0) { 
          scope.TypeAheadData = data.result; 
          return data.result; 
         } 
/* not needed because we are at end of method 
         else { 
          return; 
         } */ 
        }); 

がいっぱい更新されたコードです:

(function() { 
    'use strict'; 
    var app = angular.module('app'); 
    app.directive('Autocomplete', ['Authentication', '$http', function(AuthenticationService, $http){ 
     return { 
      restrict : 'AEC', 
      require: 'ngModel', 
      scope: { 
       modeldisplay:'= modeldisplay' 
      }, 
      templateUrl: 'directives/autocomplete/autocomplete.html', 
      link: function(scope, element, attrs, ctrl){ 
       scope.searchCustomer = function(customerSearch){ 
        var params = { 
         'session_key': Authentication.GetSessionKey(), 
         'q': customerSearch 
        }; 
        if (!customerSearch){ 
         return; 
        } 
        var url = config.url + '/api/search'; 
        return $http.post(url, params).then(function(response){ 
         var data = response.data; 
         if(data.error == 0) { 
          scope.TypeAheadData = data.result; 
          return data.result; 
         } 
/*      else { 
          return; 
         } */ 
        }); 
       }; 
       scope.handleSelection = function(item){ 
        ctrl.$setViewValue(item); 
        scope.modeldisplay = item; 
        scope.selected = true; 
       }; 
       scope.isCurrent = function(index) { 
        return scope.current == index; 
       }; 
       scope.setCurrent = function(index) { 
        scope.current = index; 
       }; 
      } 
     }; 
    }]); 
})(); 
+0

私はまだ同じエラーを取得しようとしました... – Guest

+0

@geeksあなたは提供していませんこれがテスト可能な実行可能なアプリケーションであることをコードするのに十分です。あなたはそうすることを検討するかもしれません。おそらくはプランナーの形をしています。 – JeffryHouser

+0

私はhttp://www.jitendrazaa.com/blog/salesforce/ajax-based-autocomplete-typeahead-directive-in-angularjs/からこの実装を持っています。同じエラーが出ています – Guest

0

問題以下の行をしました:

  1. スコープ:{ modeldisplay: '= modeldisp横たわっ/ API /検索 '// config.url & '/ API /検索'

  2. を連接する必要がある」この余分な//、VAR URL = config.urlが }

  3. を除去する必要があります'

正しいコードを以下に添付されています

(function() { 
    'use strict'; 
    var app = angular.module('app'); 
    app.directive('Autocomplete', ['Authentication', '$http', function(AuthenticationService, $http){ 
     return { 
      restrict : 'AEC', 
      require: 'ngModel', 
      scope: { 
       modeldisplay:'= modeldisplay' 
      }, 
      templateUrl: 'directives/autocomplete/autocomplete.html', 
      link: function(scope, element, attrs, ctrl){ 
       scope.searchCustomer = function(customerSearch){ 
        var params = { 
        'session_key': Authentication.GetSessionKey(), 
        'q': customerSearch 
        }; 
        if (!customerSearch){ 
        return; 
        } 
        var url = config.url + '/api/search'; 
        return $http.post(url, params).then(function(response){ 
         var data = response.data; 
         if(data.error == 0) { 
          scope.TypeAheadData = data.result; 
          return data.result; 
         } 
         else { 
          return; 
         } 
         }); 
       } 
       scope.handleSelection = function(item){ 
       ctrl.$setViewValue(item); 
       scope.modeldisplay = item; 
       scope.selected = true; 
       }; 
       scope.isCurrent = function(index) { 
       return scope.current == index; 
       }; 
       scope.setCurrent = function(index) { 
       scope.current = index; 
       }; 
      }, 
      }; 
     }]); 
    })(); 
関連する問題