在angularjs中没有得到$ scope的响应

时间:2015-07-06 12:22:42

标签: javascript html angularjs

这是获取单个用户的方法。 console.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 :(得分:0)

尝试删除JS第2行的values.OrderByDescending(x => x.Length).ThenByDescending(x => int.Parse(x)); 关键字。

答案 1 :(得分:0)

使用以下内容:

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

这应该可以解决问题。

答案 2 :(得分:0)

我认为这是因为angularjs bootstrap时没有定义你的用户。你能尝试在$ 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;
});

}