在angularjs视图中存储span或textarea的值

时间:2014-10-24 22:13:40

标签: html asp.net angularjs

我在ASP.NET WebForms页面中调用了一个控制器:

输入类型="按钮" data-ng-click =" addReply(post.PostId,LoggedInDisplayName,post.NewReply)"值="提交" ID =" createReply" class =" btn btn-default pull-right"

LoggedInDisplayName是我需要传递给addReply方法的变量,该方法在服务中执行RESTful API HTTP调用。

不幸的是,LoggedInDisplayName是一个只能由ASP提供的字段,因为这是当前用户的登录名,我使用的是Microsoft的内置成员资格配置例程。

我可以在我的代码隐藏C#文件中使用此逻辑将登录名放入隐藏的span或textarea元素中:

        if (Membership.GetUser() != null)
        {
            loggedInDisplayName.InnerText = Membership.GetUser().ToString();
        }

其中loggedInDisplayName是span或textarea的ID。

但是,如何将span或textarea的内容放入LoggedInDisplayName字段?我尝试使用ng-model,但这不起作用 - span / textarea恢复为空白字段。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

只需输入你的提交按钮,ng-init =“loggedInDisplayName =(asp variable)”。这会将变量初始化为您的asp变量。

答案 1 :(得分:0)

为了解决这个问题,我将asp变量加载到DOM中,如下所示

span style =" visibility:hidden" ID =" loggedInDisplayName" ><%:LoggedInDisplayName()%>

在文件后面的.cs代码中:

    public string LoggedInDisplayName()
    {

        string loggedInDisplayName = "";

        // set the login name for use in creating new posts and replies
        if (Membership.GetUser() != null)
        {
            loggedInDisplayName = Membership.GetUser().ToString();
        }

        return loggedInDisplayName;

    }

然后一个控制器在范围

中创建变量
// The Global Variable defined outside angular
var loggedInDisplayName = $('#loggedInDisplayName').text();

//Define Controller
gwApp.controller('LoginName', ['$scope', '$window',
function ($scope, $window) {
    $scope.LoggedInDisplayName = $window.loggedInDisplayName;
}
]);

我将现有的控制器包装在新控制器中:

div id =" loginName"数据-NG控制器=" LoginName将">

...现有代码......

/ DIV>

然后我的提交按钮:

输入类型="按钮" data-ng-click =" addReply(post.PostId,LoggedInDisplayName,post.NewReply)"值="提交" id =" createReply {{post.PostId}}" class =" btn btn-default pull-right" />