私はドロップダウンメニューに表示される空白の空白を取り除く方法を理解しようとしています。メニューには含まれていなかった「すべて」オプションがありました。私はそのオプション(恐らく正しい動きではない)を取り除きました。そして時々リフレッシュするとメニューが表示され、空白があり、それ以外のときにコンソールにエラーが表示されます。なぜこの種が存在するのか分かりません。ドロップダウンメニューのオプション/空のスペースを取り除く方法 - 角度のあるJS?
最終的に、私はすべてのオプション(正しい方法)を取り除き、それが残す空白を削除する必要があります。私は、角JS/HTMLであまり慣れていないんだ
<select class="form-control" required
id="roleSelector"
ng-options="talentRole as talentRole.description for talentRole in talentRoles track by talentRole.id" id="talentRole"
ng-change="roleChanged(role)"
ng-model="selectedRole">
<option ng-if="true" selected="true" value="" class="select-placeholder"><ln code="directive.role.select.tooltip" args=""></ln></option>
</select>
<div topic-input
name-only="topicNameOnly"
class="row-spacing"
ng-show="showTopics()"
ng-model="selectedTopics"
talent-role-id="selectedRole.id"></div>
:ここ
define(["app",
"lodash",
"service/reference",
"directives/control/topic-input"
], function (app) {
return app.directive('roleSelect', ['Reference', function (Reference) {
return {
restrict: 'A',
scope: {
selectedRole: '=',
selectedTopics: '=?',
presetRole: '=?',
topicNameOnly: '@?',
notUsePresets:'@?'
},
link: function ($scope, elem, attr) {
$scope.talentRoles = [];
$scope.topicNameOnly = ($scope.topicNameOnly === 'true');
$scope.notUsePresets = ($scope.notUsePresets === 'true');
if(!$scope.presetRole) {
$scope.presetRole = {id: -1, code: "ALL", description: "All"};
} // this is where the 'All' option comes from, so I just got rid of this if statement. Not sure if this is the right thing to do
if(!$scope.notUsePresets) {
$scope.talentRoles.push($scope.presetRole);
}
Reference.getTalentRoles($scope, function (response) {
$scope.talentRoles = response.concat($scope.talentRoles);
for(var i = 0;i<$scope.talentRoles.length;i++){
if($scope.selectedRole && $scope.selectedRole.description == $scope.talentRoles[i].description){
$scope.selectedRole = $scope.talentRoles[i];
}
}
});
$scope.showTopics = function(){
return attr.selectedTopics
}
$scope.roleChanged = function(role) {
$scope.selectedTopics = [];
};
},
templateUrl: '/directives/control/role-select.html'
};
}])
});
そして、私のHTMLは次のとおりです。
は、ここに私のjsです。しかし、<option>
</option>
タグは、ユーザー側から選択されたものが私の側で(管理者として)選択されたままであることを保証します。そのため、その機能を残す必要があります。私はまた、ng-optionsがこのメニューの母であることを理解しています。だから、おそらくこのタグでいくつかの構成が必要になるでしょう。
はTypeError:
私がif文を削除したときに、私は、コンソール上でこのエラーが出るようだ:ここで
はJavaScriptからif文を削除する前にスナップショットを次のとおりです。定義されていないプロパティ 'description'を読み取ることができませんだから、私はその状態を取り除くことは正しいことではないと推測しています。私が十分に与えていない場合はお詫び申し上げますが、さらに私を助けてくれるように私ができることを教えてください。
Worked。ありがとう男 – keslami
クール。問題ない。チェックをクリックすると、回答が正しいと指定できるので、他の人も修正内容を知ることができます。 –