Siehe meine Codes unten. Es fällt mir schwer, den Wert von $ scope.brand aus meiner Sicht zu zeigen. Wenn ich auf den Benutzermarke Button klicken, passiert nichts. Der brand.name in der Ansicht wurde nicht aktualisiert, aber wenn ich auf die Testmarkenschaltfläche klicke, nachdem ich auf geklickt habe, um die Benutzermarkenschaltfläche zu erhalten, wird der Wert des Bereichs angezeigt. Ich weiß nicht, was jetzt passiert. Bitte helfen Sie. Vielen Dank!
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);
}
}]);
Ansicht
<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>
WOOOH !! Nach all der Zeit. Danke Cyril! Es funktioniert jetzt! –
Und bitte vermeiden Sie $ Scope, bis explizit erforderlich. Damit controler das Mapping anzeigen kann, können Sie controllerAs Syntax verwenden, die besser ist und eine bessere Lesbarkeit des Codes und eine weniger Abhängigkeit in Ihrem Controller ermöglicht. Darüber hinaus haben wir Konzepte von Services in angularjs für alle diese http-Aufrufe und andere Geschäftslogik. Bitte versuchen Sie, die Controller so leicht wie möglich zu halten. Hoffe, dass dies eine Hilfe sein kann – Vatsal