【问题标题】:AngularJS return whole Page ng-model values not visibleAngularJS 返回整个页面 ng-model 值不可见
【发布时间】:2022-12-15 06:24:07
【问题描述】:

我有一个 Webapp,使用 AngularJS 和 asp.net / C# 后端。

我需要将呈现的 HTML 页面发送到后端。但是来自 ng-model 绑定的值似乎不在代码中。

我尝试了不同的方法,比如 document.getElementById("...").innerHTML,但是来自 ng-model 的值(在输入和文本区域中)总是空的/不可见。

这是我使用的一些代码:

angularjs 控制器:

function EditController(user) {
   var vm = this;

   vm.User = user.data.User;
   ...
}

function Print() {
    vm.User.Name = document.getElementById('Name').textContent;
    vm.User.Description = document.getElementById('Description').textContent;

    //THIS IS THE QUESTION
    **vm.User.Html = document.documentElement.outerHTML;**

    Service.create('User/print', vm.User).then(successfullyPrinted, errorOnPrinting);
 }

角度视图:

...
<div class="row">
    <div class="col-sm-6">
        <label class="control-label">Name:</label>
    </div>
    <div class="col-sm-7 ">
        <input type="text" id="Name" class="form-control" ng-model="vm.user.Name">
    </div>
</div>
<div class="row">
    <div class="col-sm-6">
        <label class="control-label">Desc:</label>
    </div>
    <div class="col-sm-7 ">
        <textarea type="text" id="Description" ng-model="vm.user.Description"></textarea>
    </div>
</div>
...

有没有办法将值发送到控制器?绑定也应该以两种方式工作,因为我也需要保存模型。这些值在视图中可见,并且保存也有效。但是发布的 html 不包含这些值。

例如,呈现的 html 如下所示:

<textarea type="text" name="x1" id="x1" ng-model="vm.user.Description" class="ng-pristine ng-untouched ng-valid"></textarea>

它显示了值,但不是在纯 html 文本中...

目标是在后端创建一个 pdf 文件(它必须在那里),就像显示的 html 页面一样。

谢谢你的帮助

【问题讨论】:

    标签: c# html jquery asp.net angularjs


    【解决方案1】:

    您是否有指向在您的 app-routing.module 中使用 ngModel 的页面的路由? 像这样:

    {path: 'add', loadChildren: () => AddPageModule}, // !!!! Necesary for ngModel
    

    或这个

    { path: 'add', component: AddPageComponent }
    

    也可以像这样使用 ng 模型:

    <textarea type="text" id="Description" [(ngModel)]="vm.user.Description" ></textarea>
    

    如果路线解决了您的问题并且您发现了原因,请在this thread 中留下答案。

    如果这些都没有帮助,请为您的问题添加更多上下文。

    【讨论】:

    • 我不确定这是否是 AngularJS 的问题...它会像这样呈现,例如: '''<textarea type="text" name="x1" id="x1" ng-model="vm. user.Description" class="ng-pristine ng-untouched ng-valid"></textarea>''',该值可见,但在纯html文本中不可见
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-13
    • 2015-12-12
    • 2016-10-17
    • 1970-01-01
    • 1970-01-01
    • 2015-06-16
    • 1970-01-01
    相关资源
    最近更新 更多