在 Visual Studio 2013 中使用 angularjs 材料设计

Posted

技术标签:

【中文标题】在 Visual Studio 2013 中使用 angularjs 材料设计【英文标题】:Using angularjs material design with visual studio 2013 【发布时间】:2015-09-22 05:03:09 【问题描述】:

我是 angularjs 材料设计的新手,希望在我的前端实现其丰富的 UI 功能。 VS13 附带安装在创建的模板中的引导程序。我可以将 angularjs material design 与 bootstrap 结合起来,或者自定义 bootstrap 来给我 Material Design 的外观和动画吗?

我创建了新项目并安装了angularjs material design,将其添加到App_Start文件夹下的BondleConfig.vb

bundles.Add(New ScriptBundle("~/bundles/angular").Include(
                    "~/bundles/angular.js",
                    "~/bundles/angular-animate.js",
                    "~/bundles/angular-aria.js"))

bundles.Add(New StyleBundle("~/Content/css").Include(
                  "~/Content/bootstrap.css",
                  "~/Content/angular-material/angular-material.css",
                  "~/Content/site.css"))

我可以将class="md-button md-raised" 添加到一个链接中,该链接给了我一个很好的凸起按钮,但我无法将md-primary 添加到它。此外,在 html 标记中使用 <md-button></md-button> 之类的标签会导致 unknown element 错误。

【问题讨论】:

本主题将为您解答您的问题:***.com/questions/27438336/…。 好的,我有新的项目设置,我右键单击解决方案 > 管理 nuget 包 > 搜索“响应式设计”,我看到我安装了 angularjs 材料设计并将其添加到我的 buildConfig 类,但是当我尝试时实现它我得到未知元素 请编辑您的问题并向我们展示您在项目中真正所做的代码部分。谢谢。 可能是您在模块的注入中缺少 ngMaterial 引用...您的 JS 文件和 AngularJS 配置在哪里? 我是 angularjs 的新手,它的材料设计是否有任何教程我可以按照步骤或在 Visual Studio 13 MVC 应用程序罐上正确安装 【参考方案1】:

您的包配置看起来不错,只是您忘记在包中包含 angular-material.js。

bundles.Add(New ScriptBundle("~/bundles/angular").Include(
                    "~/bundles/angular.js",
                    "~/bundles/angular-animate.js",
                    "~/bundles/angular-aria.js",
                    "~/bundles/angular-material.js")) //missing part

        bundles.Add(New StyleBundle("~/Content/css").Include(
                  "~/Content/bootstrap.css",
                  "~/Content/angular-material/angular-material.css",
                  "~/Content/site.css"))

您还必须在配置中包含一个 app.js 文件(*)。

您的配置必须有一个模块和控制器。

关键部分是dependency injection。您必须包含 ngMaterial 模块才能使用下载的库... 并且不要忘记包含其他脚本!

//(*) app.js
angular.module('MyApp',['ngMaterial'])
.controller('AppCtrl', function($scope) 
  $scope.title1 = 'Button';
  $scope.title4 = 'Warn';
  $scope.isDisabled = true;

  $scope.googleUrl = 'http://google.com';

);
.buttondemoBasicUsage section 
  background: #f7f7f7;
  border-radius: 3px;
  text-align: center;
  margin: 1em;
  position: relative !important;
  padding-bottom: 10px; 
.buttondemoBasicUsage md-content 
  margin-right: 7px; 
.buttondemoBasicUsage section .md-button 
  margin-top: 16px;
  margin-bottom: 16px; 
.buttondemoBasicUsage .label 
  position: absolute;
  bottom: 5px;
  left: 7px;
  font-size: 14px;
  opacity: 0.54; 
<link href="http://cdn.rawgit.com/angular/bower-material/v0.10.0/angular-material.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular-animate.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular-route.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular-aria.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular-messages.min.js"></script>
<script src="http://cdn.rawgit.com/angular/bower-material/v0.10.0/angular-material.js"></script>
<script src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/t-114/assets-cache.js"></script>
<div ng-controller="AppCtrl" class="buttondemoBasicUsage" ng-app="MyApp">
  <md-content>

    <section layout="row" layout-sm="column" layout-align="center center">
      <md-button>title1</md-button>
      <md-button md-no-ink="" class="md-primary">Primary (md-noink)</md-button>
      <md-button ng-disabled="true" class="md-primary">Disabled</md-button>
      <md-button class="md-warn">title4</md-button>
      <div class="label">Flat</div>
    </section>

    <section layout="row" layout-sm="column" layout-align="center center">
      <md-button class="md-raised">Button</md-button>
      <md-button class="md-raised md-primary">Primary</md-button>
      <md-button ng-disabled="true" class="md-raised md-primary">Disabled</md-button>
      <md-button class="md-raised md-warn">Warn</md-button>
      <div class="label">Raised</div>
    </section>


    <section layout="row" layout-sm="column" layout-align="center center">
        <md-button ng-href="googleUrl" target="_blank">Default Link</md-button>
        <md-button class="md-primary" ng-href="googleUrl" target="_blank">Primary Link</md-button>

        <md-button>Default Button</md-button>
      <div class="label">Link vs. Button</div>
    </section>

    <section layout="row" layout-sm="column" layout-align="center center">
      <md-button class="md-primary md-hue-1">Primary Hue 1</md-button>
      <md-button class="md-warn md-raised md-hue-2">Warn Hue 2</md-button>
      <md-button class="md-accent">Accent</md-button>
      <md-button class="md-accent md-raised md-hue-1">Accent Hue 1</md-button>
      <div class="label">Themed</div>
    </section>
  </md-content>
</div>

我还关注了这个example,向你展示了它是如何工作的。

我希望现在没事:)

【讨论】:

【参考方案2】:

如果有人想知道如何开始使用 Angular Material + MVC 在 vs 中,您可以按照以下步骤操作。 1.在Visual Studioe中创建一个MVC项目。 2.转到 App_Start 文件夹。 3.转到BundleConfig.cs。 4.清除RegisterBundles功能内的所有代码并保存。 5.转到共享文件夹下的_Layout.cshtml文件。 6.替换下面的代码。

<!DOCTYPE html>
<html lang="en"  ng-app="BlankApp">

<head>
    <meta charset="utf-8" />
    <title>@ViewBag.Title</title>

    <meta name="viewport" content="width=device-width" />
        <link rel="stylesheet" href="//rawgit.com/angular/bower-material/master/angular-material.css">
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular.min.js"></script>
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular-animate.min.js"></script>
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular-aria.min.js"></script>
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular-messages.min.js"></script>

    <!-- Angular Material Library -->
    <script src="http://ajax.googleapis.com/ajax/libs/angular_material/1.1.0/angular-material.min.js"></script>
</head>

<body>
    <script type="text/javascript">

    /**
     * You must include the dependency on 'ngMaterial'
     */
    angular.module('BlankApp', ['ngMaterial']);
    </script>
    <div class="wrapper">
        <div class="container">
            @RenderBody()
        </div>
    </div>
    @RenderSection("scripts", required: false)
</body>

</html>  

7.转到 index.cshtml 8.开始使用Angular Material。(示例代码在下面)

@
    ViewBag.Title = "Home Page";


<body>

    <md-content>
        <md-tabs md-dynamic- md-border-bottom="">
            <md-tab label="one">
                <md-content class="md-padding">
                    <h1 class="md-display-2">Tab One</h1>
                    <p>Lorem ipsum dolor sit amet, consectetur.</p>
                </md-content>
            </md-tab>
            <md-tab label="two">
                <md-content class="md-padding">
                    <h1 class="md-display-2">Tab Two</h1>
                    <p>LNullam malesuada consequat diam, a facilisis tortor volutpat et. Sed urna dolor.</p>
                    <p>Morbi viverra, ante vel aliquet tincidunt, leo dolor.</p>
                    <p>Integer turpis finibus commodo lectus.</p>
                </md-content>
            </md-tab>
            <md-tab label="three">
                <md-content class="md-padding">
                    <h1 class="md-display-2">Tab Three</h1>
                    <p>Integer turpis erat, lectus.</p>
                </md-content>
            </md-tab>
        </md-tabs>
    </md-content>
</body>

谢谢, -快乐编码-

【讨论】:

以上是关于在 Visual Studio 2013 中使用 angularjs 材料设计的主要内容,如果未能解决你的问题,请参考以下文章

使用平台工具集 v120 (Visual Studio 2013) 在 Visual Studio 2015 中创建 C++/CLI 项目

Intel parallel studio 2017 集成在visual studio 2013 中,现在如何集成到visual studio 2015

在 Visual Studio 2013 中使用 Roslyn 编译器

在 Visual Studio 2013 中使用 angularjs 材料设计

如何在 Visual Studio 2013 中使用 NuGet 3.0?

Visual Studio中的环境变量(以Visual Studio 2013为例)