2016-09-22 3 views
1

Angularjs(角度材料を使用しています)を学び始めていますが、ng-hrefを使用して少し問題があります。 私は私のウェブページの上部にあるツールバーをしたが、できるだけ早く私はボタンに「NG-HREF」属性を追加すると、ボタン内のテキストはもはや中心にされていません。angularjsのボタンにng-hrefを追加すると、ボタン内のテキストの位置が変更されます

Example Image

最初の2つのボタンにはng-hrefタグが追加されています。 3番目にはありません。それ以外の場合は、まったく同じです。

angular.module('angular2',['ngRoute','ngMaterial','ngMessages']) 
 
    .config(function ($mdThemingProvider,$routeProvider) { 
 
     $mdThemingProvider.theme('default') 
 
      .primaryPalette('blue') 
 
      .accentPalette('blue'); 
 
     $routeProvider 
 
      .when("/", { 
 
       templateUrl : "main.html" 
 
      }) 
 
      .when("/test1", { 
 
       templateUrl : "test1.html" 
 
      }) 
 
      .when("/test2", { 
 
       templateUrl : "test2.html" 
 
      }) 
 
    }) 
 
    .controller('mainCtrl',function ($scope, $http, $mdDialog) { 
 

 
    }) 
 
    ;
.navButton{ 
 
    font-weight: bold; 
 
    margin: 0px; 
 
    height: inherit; 
 
    width: 150px; 
 
    border-radius: 0px; 
 
    text-transform: none; 
 
    border: solid; 
 
}
<!DOCTYPE html> 
 
<html lang="en" ng-app="angular2"> 
 
<head> 
 
    <meta charset="UTF-8"> 
 
    <title>Angular 2</title> 
 

 
    <link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/angular_material/1.1.0/angular-material.min.css"> 
 
    <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700,400italic"> 
 
    <link rel="stylesheet" href="https://netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css"> 
 
    <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"> 
 
    <link rel="stylesheet" href="app.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> 
 
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-route.js"></script> 
 
    <script src="http://ajax.googleapis.com/ajax/libs/angular_material/1.1.0/angular-material.min.js"></script> 
 

 
    <script src="app.js"></script> 
 
</head> 
 

 
<body ng-controller="mainCtrl"> 
 
<div layout="column"> 
 
    <md-toolbar class="md-menu-toolbar" style="height: 64px"> 
 
     <div layout="row" style="height: inherit"> 
 
      <md-toolbar-filler flex="5" style="height: inherit" layout layout-align="center center"> 
 
       <md-icon class="material-icons md" style="font-size: 48px; height: 48px; width: 48px">mail_outline 
 
       </md-icon> 
 
      </md-toolbar-filler> 
 
      <div flex layout="row" layout-align="start center" style="height: inherit"> 
 
       <md-button class="md-primary navButton" ng-href="#/">Main</md-button> 
 
       <md-button class="md-primary navButton" ng-href="#/test1">Test 1</md-button> 
 
       <md-button class="md-primary navButton">Test 2</md-button> 
 
      </div> 
 
     </div> 
 
    </md-toolbar> 
 
    <div ng-view></div> 
 
</div> 
 

 

 
</body> 
 

 
</html>

私はNG-href属性を追加した後、どういうわけか私は、ボタン内のテキストを中央に管理することができませんでした。

答えて

0

これを再現するためのフィドルを取得できませんでした。しかし、私はmd-buttonディレクティブで演奏しましたが、通常はこれでうまくいきます。あなたのapp.cssに潜在的に矛盾しているものがあります。

md-buttonがhrefまたはng-hrefを見ると、<a>タグが作成され、ボタンの内容が<span>になります。中央、それが内だとき<span>の属性を変更している何かのためにあなたのCSSをチェックします。だからあなたの

<md-button class="md-primary navButton" ng-href="#/test1">Test 1</md-button> 

<a class="md-primary navButton md-button md-ink-ripple" 
     ng-transclude="" ng-href="#/test1" href="#/test1"> 
    <span class="ng-scope">Test 1</span> 
</a> 

角度-material.cssはその<a>タグテキスト整列を与えるとなり<a>。ここで

は、私が働いていたフィドルのですが、あなたとまったく同じではありません。後ほどになっanuglarjs MD-ボタンを使用する代わりに :私は一種の管理 https://jsfiddle.net/phanxo14/

+0

ありがとうございました。私が他の答えに書いたように、これは実際に私が問題を解決するのを助けました。 – Exobros

0

は、問題を解決するには私が代わりに生成され、直接1つを用い角度<a>タグコピー<a>タグ:

<a class="md-primary navButton md-button md-ink-ripple" ng-transclude="" ng-href="#/" style="text-align: center; height:inherit" href="#/" layout> 
    <span class="ng-scope" flex style="text-align: center">Main</span> 
</a> 

は、それから内側に周囲<a>タグと「フレックス」属性に「レイアウト」属性を追加しました。 私はこのことがどうしてうまくできないのか分かりませんが、テキストは現在中央に配置されています。

編集:実際には、layoutlayout-align="center center"という属性をボタンに追加するだけでした。

関連する問題