ASP.NET用户控件与AngularJS结合使用

3

我正在使用angularJS在asp.net用户控件(UC)中,但不幸的是,当我尝试将我的UC添加到页面中时,整个使用angular的页面部分停止工作。 我尝试将angular引用与UC和页面分开使用,但没有成功。

页面代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Abc.aspx.cs" Inherits="WebApplication1.Abc" %>
<%@ Register Src="~/filterUC.ascx" TagPrefix="uc1" TagName="filterUC" %>


<!doctype html>
<html>
<head>
</head>
<body>
    <uc1:filterUC runat="server" ID="filterUC" />
    <div>
      <label>Name:</label>
      <input type="text" ng-model="myModel" placeholder="Enter a name here">
      <hr>
      <h1>Hello {{myModel}}!</h1>
    </div>    
</body>
</html>

UC代码:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="filterUC.ascx.cs" Inherits="WebApplication1.filterUC" %>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.7/angular.min.js"></script>
<div ng-app>
    <label>Name:</label>
    <input type="text" ng-model="yourName" placeholder="Enter a name here">
    <hr>
    <h1>Hello {{yourName}}!</h1>
</div>

我该如何完成它?

谢谢。

1个回答

1

我用以下方式修改了你的示例,使其可运行:

  1. 将调用AngularJS的脚本移动到Abc.aspx页面中。
  2. <body>标签中设置ng-app="app",并从您的用户控件中删除它。
  3. 添加一个脚本来创建您的Angular应用程序模块。
     <%@ Register Src="~/Controls/filterUC.ascx" TagPrefix="uc1" TagName="filterUC" %>
    <!DOCTYPE html>
    <head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.7/angular.min.js">
    </script>
    <script>
        angular.module('app', []);
    </script>
    </head>
    <body ng-app="app">
    <div>
      <label>Name:</label>
      <input id="input1" type="text" ng-model="myModel" placeholder="Enter a name here">
      <hr>
      <h1>Hello {{myModel}}!</h1>
    </div>
    <uc1:filterUC runat="server" id="filterUC" />
    </body>
    </html>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接