Skip to main content
 首页 » 编程设计

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

2024年08月06日36langtianya

我有以下 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; 
}