0
我正在處理一個angularjs項目。並且真的想知道如何訪問由jQuery(或其他JavaScript代碼)按範圍呈現的值。這裏是我的模板的一部分:Angularjs:如何使用Jquery讀取作用域呈現值
<div class="bars" data-label="Population" data-val="{{town.population}}" data-color="#cccccc">
所以,我要去使用由範圍渲染的data-val
屬性的值。我做這樣的:
TownApp.directive('bars', function() {
return {
restrict: 'C',
link: function (scope, elem, attrs) {
// I tried : this will get value: {{town.population}} as a string itself.
$(".bar").jqbar({value: $(this).data('val');
// also tried: this will get undefined
elem.jqbar({ value: attrs.val});
// and so on......
}
}
}
})
正如我在評論中所描述的,似乎同時指令運行,範圍值仍沒有呈現到頁面,從而使進一步規範無法正確讀取值。
所以,我的問題是我該如何做到這一點?非常感謝 !
UPDATE:
添加控制器和工廠代碼:
var TownApp=angular.module('TownApp',['ngRoute','ngResource']);
TownApp.factory('Town', function($http) {
return $http.get('/database.json').then(function(response){
return response.data;
})
});
var TownCtrl = TownApp.controller('TownCtrl',function($scope, $routeParams, Town, $location){
Town.then(function(response){
$scope.towns = response;
for (var i = 0; i < response.length; i++) {
if(response[i].Code === $routeParams.townId){
var currentTown = response[i];
}
$scope.town = currentTown;
}
//.......
});
})
哇,酷!非常感謝。我會一點一點地玩。再次感謝。 –
哎呀,嗨Jussi,我嘗試了以上所有,但他們都返回'undefined'。而不是價值觀。任何想法? –
你確定town.population有一些有效的東西嗎?這是一個小工具它的工作:http://jsfiddle.net/aD7dX/ 注意:我有一個錯字在第二個,它是$ watch而不是$ wach –