javascript - 如何使用 C# 和 Angular js 在 View 上显示数据

标签 javascript c# angularjs

我有以下 Controller :

  public class UserController : BaseApiController
    {
        // GET api/<controller>
        public string Get()
        {
            var currentuser = CurrentUser.Name;
            return currentuser;
        }

    }

currentuser的值我是这样传给datacontext的:

 function getName() {
                var deferred = $q.defer();
                var promise = deferred.promise;
                cachedPromises.currentuser = promise;
                $http.get(baseUrl + 'api/user').success(getSucceeded).error(getFailed);
                return cachedPromises.currentuser;

                function getSucceeded(data) {
                    console.log('data:', data);
                }

                function getFailed(parameters) {
                        console.log("failed", parameters);
                    }
            }

在控制台日志上 console.log('data:', data); 我得到了值,为了应用绑定(bind),我必须将这个值传递给 controller.js 中的范围.为了做到这一点,我用这种方式做了一个 Controller 。

LogName.$inject = ['$scope', 'datacontext']
    function LogName($scope, datacontext) {

        $scope.name =[];

        datacontext.getName().then(function (currentuser) {
            $scope.name = currentuser;

        });
    }

在 View 中,我有以下数据绑定(bind)代码:

 <h1 ng-controller="LogName" class="title">{{name}}</h1>

绑定(bind)显示为空数组,我不明白哪里出了问题。

编辑: 当我在 Controller 上执行控制台日志时:

  datacontext.getName().then(function (currentuser) {
            $scope.name = currentuser;
            console.log('current', currentuser);

        });

View 上什么都没有出现,编译器没有到达datacontext.getName

最佳答案

您的 MVC Controller 返回字符串 public string Get() 并且您将 $scope.name =[]; 声明为数组,将其更改为 $scope.name =''; 应该有帮助

并将函数 getName 更改为:

function getName() {
    var deferred = $q.defer();


    $http.get(baseUrl + 'api/user').success(getSucceeded).error(getFailed);
     return deffered.promise;

    function getSucceeded(data) {
        console.log('data:', data);
        //add this
        deferred.resolve(data);
    }

    function getFailed(parameters) {
        console.log("failed", parameters);
        deferred.reject(parameters);;
    }
     return deffered.promise;
}

关于javascript - 如何使用 C# 和 Angular js 在 View 上显示数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28965017/

相关文章:

javascript - 需要 "-1"中的逻辑。在javascript中用数组进行for循环

c# - 按字母顺序对字符串中的数字进行排序

c# - ASP.NET - 动态控制值和回传

javascript - AngularJS如何检查完成的多个http请求并在所有响应完成后做一些事情

javascript - Ignite UI 树网格未使用新数据更新表

javascript - JSDoc:模块和命名空间之间的关系是什么

JavaScript cookie

c# - 使用 Kinect 调整 body 关节角度

javascript - 如何在 Angular JS 中将输入字段值转换为 Base64 编码或解码

javascript - 哪个导航栏?