无法使用 getJSON 方法在 knockout 中获取 JSON 数据
unable to get JSON data using getJSON method in knockout
我试图在 knockout.js 中使用 $.getJSON 方法,但出现 Uncaught (in promise) ReferenceError: $ is not defined
错误。我正在为这个项目使用 knockout-3.4。2.js。
这是我的 javascript 代码:
// get JSON request of foursquare data
var reqURL = 'https://api.foursquare.com/v2/venues/search?ll=' + this.position.lat + ',' + this.position.lng + '&client_id=' + clientID + '&client_secret=' + clientSecret + '&v=20160118' + '&query=' + this.title;
console.log(reqURL);
$.getJSON(reqURL).done(function(data) {
var results = data.response.venues[0];
self.street = results.location.formattedAddress[0] ? results.location.formattedAddress[0] : 'N/A';
self.city = results.location.formattedAddress[1] ? results.location.formattedAddress[1] : 'N/A';
self.phone = results.contact.formattedPhone ? results.contact.formattedPhone : 'N/A';
}).fail(function() {
alert('Something went wrong with foursquare');
});
Html:
<body>
<nav class="navbar navbar-light bg-light">
<!-- <form class="form-inline"> -->
<div class="input-group">
<input type="text" class="form-control mr-sm-2" placeholder="Search" name="q" data-bind="textInput: searchItem, valueUpdate: 'afterkeydown'">
<!-- <div class="input-group-btn">
<button class="btn btn-outline-success my-2 my-sm-0"><i class="glyphicon glyphicon-search"></i></button>
</div> -->
</div>
<!-- </form> -->
</nav>
<div class="container">
<div class="col-lg-5">
<div class="list-group" data-bind="foreach: locationList">
<a href="#" class="list-group-item list-group-item-action" data-bind="text: title, click: show"></a>
</div>
</div>
<div id="map"></div>
</div>
<!-- <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> -->
<script type="text/javascript" src="js/knockout-3.4.2.js"></script>
<script src="js/data.js"></script>
<script type="text/javascript" src="js/test.js"></script>
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCzvsr0e94zenMFlGePE-ywIdt4VoUEy7c&callback=initMap" async defer></script>
</body>
请帮我解决这个错误。
$ 是 jQuery,因此请检查您是否包含 jQuery javascript 文件。
我试图在 knockout.js 中使用 $.getJSON 方法,但出现 Uncaught (in promise) ReferenceError: $ is not defined
错误。我正在为这个项目使用 knockout-3.4。2.js。
这是我的 javascript 代码:
// get JSON request of foursquare data
var reqURL = 'https://api.foursquare.com/v2/venues/search?ll=' + this.position.lat + ',' + this.position.lng + '&client_id=' + clientID + '&client_secret=' + clientSecret + '&v=20160118' + '&query=' + this.title;
console.log(reqURL);
$.getJSON(reqURL).done(function(data) {
var results = data.response.venues[0];
self.street = results.location.formattedAddress[0] ? results.location.formattedAddress[0] : 'N/A';
self.city = results.location.formattedAddress[1] ? results.location.formattedAddress[1] : 'N/A';
self.phone = results.contact.formattedPhone ? results.contact.formattedPhone : 'N/A';
}).fail(function() {
alert('Something went wrong with foursquare');
});
Html:
<body>
<nav class="navbar navbar-light bg-light">
<!-- <form class="form-inline"> -->
<div class="input-group">
<input type="text" class="form-control mr-sm-2" placeholder="Search" name="q" data-bind="textInput: searchItem, valueUpdate: 'afterkeydown'">
<!-- <div class="input-group-btn">
<button class="btn btn-outline-success my-2 my-sm-0"><i class="glyphicon glyphicon-search"></i></button>
</div> -->
</div>
<!-- </form> -->
</nav>
<div class="container">
<div class="col-lg-5">
<div class="list-group" data-bind="foreach: locationList">
<a href="#" class="list-group-item list-group-item-action" data-bind="text: title, click: show"></a>
</div>
</div>
<div id="map"></div>
</div>
<!-- <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> -->
<script type="text/javascript" src="js/knockout-3.4.2.js"></script>
<script src="js/data.js"></script>
<script type="text/javascript" src="js/test.js"></script>
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCzvsr0e94zenMFlGePE-ywIdt4VoUEy7c&callback=initMap" async defer></script>
</body>
请帮我解决这个错误。
$ 是 jQuery,因此请检查您是否包含 jQuery javascript 文件。