请参阅下面的代码。我很难在我的视图中显示$ scope.brand的值。当我点击获取用户品牌按钮时,没有任何反应。视图中的brand.name没有更新,但是当我点击获取用户品牌按钮后点击测试品牌按钮时,范围的值将会节目。我不知道现在发生了什么。请帮忙。谢谢!
Angular
var app = angular.module('nwApp', [], function($interpolateProvider) {
$interpolateProvider.startSymbol('<%');
$interpolateProvider.endSymbol('%>');
});
var url = 'http://localhost:3000';
app.controller('brandsCtrl', ['$scope', '$http', function($scope, $http){
$scope.brands = {};
$scope.brand = {};
$http.get(url+'/brands/all')
.success(function(result){
$scope.brands = result;
});
$scope.getAssignUser = function(brand_id){
$.get(url+'/brands/'+brand_id)
.success(function(result){
$scope.brand = result;
});
$("#brandModal").modal('toggle');
};
$scope.checkBrand = function(){
console.log($scope.brand);
}
}]);
查看
<a href="javascript:void(0)" class="btn btn-warning" title="Assign User for this Brand" ng-click='getAssignUser(brand._id)' >GET USER BRAND</a>
<a href="javascript:void(0)" class="btn btn-warning" ng-click='checkBrand()' > TEST BRAND </a>
<div><% brand.name %></div>
答案 0 :(得分:5)
问题在于:
Database content = Sitecore.Context.ContentDatabase;
$.get(url+'/brands/'+brand_id)
.success(function(result){
$scope.brand = result;
});
是jquery所以当它成功更新$ scope.brand时,摘要周期将不会运行并反映该值。
您应该使用angular提供的$.get
服务来执行ajax:
$http
其他解决方案是:
在你的jquery ajax中你改变了$http({
method: 'GET',
url: url+'/brands/'+brand_id
}).then(function successCallback(result) {
$scope.brand = result;
}, function errorCallback(response) {
// called asynchronously if an error occurs
// or server returns response with an error status.
});
中的范围变量,如下所示:
$apply