Получение ответа от $ scope в angularjs

0

Это мой метод для получения одного пользователя. Консоль.log печатает нужный объект, но когда я пытаюсь получить доступ к $scope.user в HTML я не получаю ответа, теги пустые:

$scope.getByUsername = function (id) {
    return $http.get('/api/User/' + id).success(function (data) {
        $scope.user = data;
        console.log($scope.user);
    });
}

HTML:

<input type="text" name="name" ng-model="user.Username" />
<button ng-click="getByUsername(user.Username)">Button</button>
<h4>{{user.Username}}</h4>
<h4>{{user.Name}}</h4>
<h4>{{user.ImageLink}}</h4>

Редактировать:

var BlogFeedApp = angular.module('blogFeedApp', ['ngRoute', 'ngResource']).
    config(['$routeProvider', function ($routeProvider) {
        $routeProvider.
            when('/', { controller: MainController, templateUrl: 'posts.html' }).
            when('/test', { controller: MainController, templateUrl: 'test.html' }).
            when('/new-post', { controller: PostController, templateUrl: 'new-post.html' }).
            when('/new-user', { controller: UserController, templateUrl: 'new-user.html' }).
            otherwise({ redirectTo: '/' });
    }]);

3 ответа

0

Я думаю, что это связано с тем, что ваш пользователь не определяется при загрузке angularjs. Можете ли вы попытаться определить пользователя за пределами обратного вызова $ http?

$scope.user = {};
$scope.user.Username = "";
$scope.getByUsername = function (id) {
return $http.get('/api/User/' + id).success(function (data) {
    $scope.user = data;
    console.log($scope.user);
    return data;
});

}

0

Попробуйте удалить ключевое слово return в строке 2 вашего JS.

  • 0
    Пробовал безуспешно
0

Используйте что-то вроде следующего:

$scope.getByUsername = function (id) {
    return $http.get('/api/User/' + id).success(function (data) {
        $scope.user = data;
        console.log($scope.user);
        return data;
    });
}

Это должно сделать трюк.

  • 0
    Не работает: /

Ещё вопросы

Сообщество Overcoder
Наверх
Меню