全新的角度.制作一个非常简单的测试应用程序

Brand new to angular. Making a very simple test app. Can't figure something out

本文关键字:一个 非常 测试 应用程序 简单      更新时间:2023-09-26

我已经学习web开发大约5个月了,这是我第一次尝试使用angular。当我看到一个使用ng-model和{{花括号表达式}}绑定数据的教程时,我想尝试做一个简单的谷歌字体配对应用程序。你输入标题和正文的文本,然后你可以从下拉菜单中为每个选择不同的字体来测试各种字体配对。简单的想法。这是有效的。但我遇到的一个问题是使下拉菜单中的字体名称用那种字体书写。这是我到目前为止所拥有的(对不起,我所包含的CSS只是一堆字体的@imports,所以它可以在测试环境中工作。有点丑):

var app = angular.module("app", []);
app.controller('FontTester', function($scope){
  $scope.fonts=["Open Sans", "Roboto", "Roboto Condensed", "Lato", "Oswald","Lora","Source Sans Pro", "PT Sans", "Open Sans Condensed", "Droid Sans", "Raleway", "Montserrat", "Ubuntu", "Droid Serif", "Roboto Slab", "Merriweather", "Arimo", "PT Sans Narrow", "Noto Sans", "Bitter", "Titillium Web", "Lobster", "PT Serif", "Oxygen", "Dosis", "Hind", "Cabin", "Arvo", "Fjalla One", "Playfair Display", "Vollkorn", "Abel", "Bree Serif", "Muli", "Poiret One", "Francois One", "Noto Serif", "Nunito", "Signika", "Play", "Inconsolata", "Ubuntu Condensed", "Archivo Narrow", "Anton", "Cuprum", "Alegreya", "Pacifico", "Karla", "Libre Baskerville", "Josephin Sans", "Asap", "Maven Pro", "Rokkitt", "Merriweather Sans", "Monda", "Dancing Script", "Quicksand", "Exo", "Varela Round", "PT Sans Caption", "Crimson Text", "Crete Round", "Questrial", "Pathway Gothic One", "Fira Sans", "Ropa Sans", "Abril Fatface", "Armata", "Patua One", "News Cycle", "Pontano Sans", "Istok Web", "Gudea", "Josephin Slab", "Noticia Text", "EB Garamond", "Cabin Condensed", "Jura", "Sanchez", "Lobster Two", "BenchNine", "Quattrocento Sans", "Old Standard TT", "Courgette", "Ruda", "Playball", "Alfa Slab One", "Righteous", "Kreon", "Passion One"].sort();
})
@import url(http://fonts.googleapis.com/css?family=Open+Sans);
@import url(http://fonts.googleapis.com/css?family=Roboto);
@import url(http://fonts.googleapis.com/css?family=Roboto+Condensed);
@import url(http://fonts.googleapis.com/css?family=Lato);
@import url(http://fonts.googleapis.com/css?family=Oswald);
@import url(http://fonts.googleapis.com/css?family=Lora);
@import url(http://fonts.googleapis.com/css?family=Source+Sans+Pro);
@import url(http://fonts.googleapis.com/css?family=PT+Sans);
@import url(http://fonts.googleapis.com/css?family=Open+Sans+Condensed:300);
@import url(http://fonts.googleapis.com/css?family=Droid+Sans);
@import url(http://fonts.googleapis.com/css?family=Raleway);
@import url(http://fonts.googleapis.com/css?family=Monterrat);
@import url(http://fonts.googleapis.com/css?family=Ubuntu);
@import url(http://fonts.googleapis.com/css?family=Droid+Serif);
@import url(http://fonts.googleapis.com/css?family=Roboto+Slab);
@import url(http://fonts.googleapis.com/css?family=Merriweather);
@import url(http://fonts.googleapis.com/css?family=Arimo);
@import url(http://fonts.googleapis.com/css?family=PT+Sans+Narrow);
@import url(http://fonts.googleapis.com/css?family=Noto+Sans);
@import url(http://fonts.googleapis.com/css?family=Bitter);
@import url(http://fonts.googleapis.com/css?family=Titillium+Web);
@import url(http://fonts.googleapis.com/css?family=Lobster);
@import url(http://fonts.googleapis.com/css?family=PT+Serif);
@import url(http://fonts.googleapis.com/css?family=Oxygen);
@import url(http://fonts.googleapis.com/css?family=Dosis);
@import url(http://fonts.googleapis.com/css?family=Hind);
@import url(http://fonts.googleapis.com/css?family=Cabin);
@import url(http://fonts.googleapis.com/css?family=Arvo);
@import url(http://fonts.googleapis.com/css?family=Fjalla+One);
@import url(http://fonts.googleapis.com/css?family=Playfair+Display);
@import url(http://fonts.googleapis.com/css?family=Vollkorn);
@import url(http://fonts.googleapis.com/css?family=Abel);
@import url(http://fonts.googleapis.com/css?family=Bree+Serif);
@import url(http://fonts.googleapis.com/css?family=Muli);
@import url(http://fonts.googleapis.com/css?family=Poiret+One);
@import url(http://fonts.googleapis.com/css?family=Francois+One);
@import url(http://fonts.googleapis.com/css?family=Noto+Serif);
@import url(http://fonts.googleapis.com/css?family=Nunito);
@import url(http://fonts.googleapis.com/css?family=Signika);
@import url(http://fonts.googleapis.com/css?family=Play);
@import url(http://fonts.googleapis.com/css?family=Inconsolata);
@import url(http://fonts.googleapis.com/css?family=Ubuntu+Condensed);
@import url(http://fonts.googleapis.com/css?family=Archivo+Narrow);
@import url(http://fonts.googleapis.com/css?family=Anton);
@import url(http://fonts.googleapis.com/css?family=Cuprum);
@import url(http://fonts.googleapis.com/css?family=Alegreya);
@import url(http://fonts.googleapis.com/css?family=Pacifico);
@import url(http://fonts.googleapis.com/css?family=Karla);
@import url(http://fonts.googleapis.com/css?family=Libre+Baskerville);
@import url(http://fonts.googleapis.com/css?family=Josephin+Sans);
@import url(http://fonts.googleapis.com/css?family=Asap);
@import url(http://fonts.googleapis.com/css?family=Maven+Pro);
@import url(http://fonts.googleapis.com/css?family=Rokkitt);
@import url(http://fonts.googleapis.com/css?family=Merriweather+Sans);
@import url(http://fonts.googleapis.com/css?family=Monda);
@import url(http://fonts.googleapis.com/css?family=Dancing+Script);
@import url(http://fonts.googleapis.com/css?family=Quicksand);
@import url(http://fonts.googleapis.com/css?family=Exo);
@import url(http://fonts.googleapis.com/css?family=Varela+Round);
@import url(http://fonts.googleapis.com/css?family=PT+Sans+Caption);
@import url(http://fonts.googleapis.com/css?family=Crimson+Text);
@import url(http://fonts.googleapis.com/css?family=Crete+Round);
@import url(http://fonts.googleapis.com/css?family=Questrial);
@import url(http://fonts.googleapis.com/css?family=Pathway+Gothic+One);
@import url(http://fonts.googleapis.com/css?family=Fira+Sans);
@import url(http://fonts.googleapis.com/css?family=Ropa+Sans);
@import url(http://fonts.googleapis.com/css?family=Abril+Fatface);
@import url(http://fonts.googleapis.com/css?family=Armata);
@import url(http://fonts.googleapis.com/css?family=Patua+One);
@import url(http://fonts.googleapis.com/css?family=News+Cycle);
@import url(http://fonts.googleapis.com/css?family=Pontano+Sans);
@import url(http://fonts.googleapis.com/css?family=Istok+Web);
@import url(http://fonts.googleapis.com/css?family=Gudea);
@import url(http://fonts.googleapis.com/css?family=Josephin+Slab);
@import url(http://fonts.googleapis.com/css?family=Noticia+Text);
@import url(http://fonts.googleapis.com/css?family=EB+Garamond);
@import url(http://fonts.googleapis.com/css?family=Cabin+Condensed);
@import url(http://fonts.googleapis.com/css?family=Jura);
@import url(http://fonts.googleapis.com/css?family=Sanchez);
@import url(http://fonts.googleapis.com/css?family=Lobster+Two);
@import url(http://fonts.googleapis.com/css?family=Benchnine);
@import url(http://fonts.googleapis.com/css?family=Quattrocento+Sans);
@import url(http://fonts.googleapis.com/css?family=Old+Standard+TT);
@import url(http://fonts.googleapis.com/css?family=Courgette);
@import url(http://fonts.googleapis.com/css?family=Ruda);
@import url(http://fonts.googleapis.com/css?family=Playball);
@import url(http://fonts.googleapis.com/css?family=Alfa+Slab+One);
@import url(http://fonts.googleapis.com/css?family=Righteous);
@import url(http://fonts.googleapis.com/css?family=Kreon);
@import url(http://fonts.googleapis.com/css?family=Passion+One);

body {
  background: #bbb;
}
input {
  margin: 0 0 20px 0;
  font-family: mono;
  font-size: 16px;
  padding: 5px;
  border: 1px solid black;
}
select {
  display: block;
  margin: 0 0 20px 0;
  font-size: 16px;
  padding: 5px;
  border: 1px solid black;
  background: white;
  font-family: mono;
}
textarea {
  border: 1px solid black;
  padding: 5px;
  font-family: mono;
  font-size: 16px;
  resize: none;
}
h1 {
  font-size: 42px;
}
p {
  font-size: 18px;
  Margin: 0;
}
.inputs {
  float: left;
  padding: 10px;
}
.inputs>p {
  width: 200px;
}
.sampleText {
  background: white;
  float: left;
  width: 600px;
  height: 500px;
  border: 1px solid black;
}
.sampleText>h1, .sampleText>p {
  padding: 0 20px;
}
<html ng-app="app">
  <head>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js">         </script>
  </head>
  <body ng-controller="FontTester">
    <h1></h1>
    <div class="inputs">
      <div class="header">
        <p>Select Header Font:</p>
        <select ng-model="headerFont">
          <option ng-repeat="font in fonts" value="{{font}}">{{font}}</option>
        </select>
        <p>Set Header Text:</p>
        <input type="text" ng-model="header">
      </div>
      <div class="bodytext">
        <p>Select Body Font:</p>
        <select ng-model="bodyFont">
          <option ng-repeat="font in fonts" value="{{font}}">{{font}}</option>
        </select>
        <p>Set Body Text:</p>
        <textarea rows="8" cols="19" ng-model="bodytext"></textarea>
      </div>
    </div>
    <div class="sampleText" style="background:{{bgcolor}};">
      <h1 style="font-family: '{{headerFont}}';">{{header}}</h1>
      <p style="font-family: '{{bodyFont}}';">{{bodytext}}</p>
    </div>
  </body>
</html>

我尝试包装的{{font}},这是在ng重复的选项,但没有工作。由于我对数据绑定的知识非常有限,我真的想不出任何其他方法来实现它,这让我很困扰。有人知道为什么没成功吗,我该怎么做才能成功吗?

使用ng-style (https://docs.angularjs.org/api/ng/directive/ngStyle)应该可以工作

<select ng-model="bodyFont">
      <option ng-repeat="font in fonts" value="{{font}}" ng-style="{'font-family':font}>{{font}}</option>
 </select>