2016-05-11 8 views
0

ラベルタグのタイトルとして動的データを設定しようとしています。私はlodashからcapitalizeプロパティを使用し、このようなものを適用しました<label title="{{caption}} {{optVal.charAt(0).toUpperCase()+optVal.slice(1)}}">{{optVal}}</label>。DOMオブジェクトで計算が多すぎて悪い習慣であることがわかったので、後で必要な結果を返す関数に渡そうとしました。私はまだオーバーヘッドを減らすためのより良い解決策を探しています、誰かが私にこれを手伝ってもらえますか?タイトル属性に動的データを適用する別の方法

http://jsbin.com/cexonihaki/edit?html,js,output

+0

なぜCSSを使用して大文字にしませんか。 CSSプロパティーtext-transform:capitalize; – joashp

+1

はい@joashpが正しいです、あなたはこれを見て、このCSSを使用することができますhttp://stackoverflow.com/questions/30207272/capitalize-the-first-letter-of-string-in-angularjs –

+0

彼は大文字できません私はタイトルにのみ変更を適用し、それ以外の場所には表示しないので、他の単語をそのままtext-transformに置き換えてください。 – AlainIb

答えて

0

現在地角度docある$timeout()機能やscope.$digest();

を使用することができます。以下のためのそれらの違いのために素敵なdocumentationザッツ

ダイジェスト

あなたがタイトルを作成し、あなたのスコープで関数を作成し、ビューでそれを使用する(または他の言及としてそれをCSSを使用しますが、それが大文字になることができ
+0

$ timeoutまたは$ digestを使う理由は?タイムアウトは通話を遅らせるためのものです。たぶんあなたは$ applyを言いたいでしょう。とにかく私は両方が無駄だと思う彼女 – AlainIb

+0

ああ私は$スコープの代替方法について考えている。 – oguzhan00

1

すべてタイトルだけでなく文字)

私はあなたのjsbinをクローン化し、http://jsbin.com/vutuwibube/1/edit?html,js,output それはコントローラ側

即座

<label ng-attr-title="{{creatTitle()}}">{{optVal}}</label> 
を実行します。

$scope.creatTitle = function(){ 
     return $scope.caption + " " + $scope.optVal.charAt(0).toUpperCase()+ $scope.optVal.slice(1); 
} 
+0

AlainIb @私もこれを試しましたが、より良い解決策を探しています –

+0

私は試しました;)あなたは3つの可能性があります。 1)あなたがしているようにビュー内で連結を行います、2)コントローラーで連結を行います。3)CSSを使用しますが、大文字のみにすることはできません。 – AlainIb

関連する問題