我有一个使用 angularJs 的表单,所有代码都可以在问题末尾的我的 plunker 上找到。
在我的控制器里面我有
$scope.showTelfield= false; $scope.showEmailfield= false;
在我的表格中以及我正在使用的电话字段和电子邮件字段中:
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 的值根据用户选择从空字符串更改为“Tel”、“Email”或“Tel & Email”,我在额外的 div 中显示它仅用于开发目的以确保它们会随着用户的选择而改变。
但是所有 if 语句都不起作用,尽管 $scope.feedback.myChannel 的值会根据我为开发而制作的显示 div 发生变化。知道为什么吗?
你可以在我的 plunker 中看到我的代码 这是我的 plunker