私はangularJsを使用したフォームを使用しています。すべてのコードは、質問の最後に私のプランナーから入手できます。私のコントローラ内部の
私は自分のフォームで
$scope.showTelfield= false; $scope.showEmailfield= false;
を持っていると電話フィールドおよび電子メールフィールドi`mのための使用:
ng-show="showTelField" ng-show="showEmailField"
ユーザーからそれを選択した場合、これらの値が真でなければなりませんコントローラ内で設計されたオプションを選択します。 HTMLで
コントローラで<select class="form-control c-select" name="select" ng-model="feedback.myChannel" ng-options="channel.value as channel.label for channel in channels">
<option value="">Select a method</option>
</select>
:
$scope.feedback = {
myChannel: "",
firstName: '',
lastName: '',
agree: false,
email: ''
};
$scope.channels = [{
value: "Tel",
label: "Tel"
}, {
value: "Email",
label: "Email"
}, {
value: "Tel & Email",
label: "Tel & Email"
}];
//Telling browser to view telephone or Email feild if needed..
if($scope.feedback.myChannel === "Tel" || $scope.feedback.myChannel === "Tel & Email"){
$scope.showTelField = true }
if($scope.feedback.myChannel === "Email" || $scope.feedback.myChannel === "Tel & Email"){
$scope.showEmailField = true }
$ scope.feedback.myChannelの値が空の文字列から変更
に "電話番号"、 "電子メール" または「電話番号&メール"私はユーザーの選択に基づいて、私は彼らがユーザーの選択を変更することを確認する開発目的のためだけに余分なdivの中に表示しています。
しかし、$ scope.feedback.myChannelの値は、表示するdivに従って変更されていますが、開発するために作成していますが、すべてのif文は機能しません。 それは何故ですか?
あなたは Here is my plunker
ありがとうございます。ng-show = "feedback.agree &&(feedback.myChannel == 'Tel' || feedback.myChannel == 'Tel&Email')">も動作します! Y?私はいくつかのソリューションで欲しい結果に到達することができますが、私の質問はどうすればhtmlでfeedback.myChannelを使用でき、コントローラで$ scope.feedback.myChannelとして使用できないのですか?あなたがtrueに設定していないのでshowTelFieldとshowEmailFieldをtrueにする方法はありませんが、オプションurを選択すると値がfeedback.myChannelになります。plunkerに行き、ng-上記のように表示されます。 –
そして、すべてのことがなくても、右側のdivを表示すると、feedback.myChannelは選択時に値を取ることがわかります。これはif文が言うことです。feedback.myChannelがtrueを返す場合はshowTelFieldとshowEmailFieldをtrueに変更します値。 !!! –
これはうまくいきません。「ng-show」は悪い習慣なのでテストしていませんでした。このために正確に作られた 'ngIf'または** BETTER **' ngSwitch'を使うべきですものの種類。そして、あなたの質問については答えがあります:** no **、値( 'showTelField'&' showEmailField')はtrueにすることはできません。なぜなら、それらを真にする方法を作っていないからです。上記のソリューション? ** "私のコントローラーで変数を使用することはできません" **と言ったらどういう意味ですか? – developer033