2017年9月14日 星期四
2017年9月13日 星期三
透過 $http.post 傳遞參數到 server 出現訊息 : JSON 要求太長,無法還原序列化
通常是因為傳遞陣列時,陣列元素總數超過預設上限300,可透過以下方式加大上限
於 web.config 中加入
<add key="aspnet:MaxJsonDeserializerMembers" value="30000" />
於 web.config 中加入
<add key="aspnet:MaxJsonDeserializerMembers" value="30000" />
2017年9月12日 星期二
自訂錯誤驗證
整體判斷 : if (!$scope.form1.$valid)
單獨判斷 : if (!$scope.form1.$error.requirepaycode)
.directive("requirepaycode", function () {
return {
restrict: 'A',
require: "ngModel",
link: function (scope, element, attributes, ngModel) {
ngModel.$validators.requirepaycode = function (modelValue, viewValue) {
return !scope.selectingPayCode() || (modelValue != null && modelValue != "");
}
}
};
})
<input requirepaycode name="報件單號" entertab ui-mask="X999999999999" model-view-value="true" class='form-control' ng-focus="focusPayCode()" ng-disabled="!newmode && !editmode" ng-model='selectData["報件單號"]'><span style='color:red' ng-show="form1['報件單號'].$error.requirepaycode">*</span>
單獨判斷 : if (!$scope.form1.$error.requirepaycode)
強制判斷 : $scope.form1.報件單號.$validate(); (考慮有些情況不會自動觸發函數)
.directive("requirepaycode", function () {
return {
restrict: 'A',
require: "ngModel",
link: function (scope, element, attributes, ngModel) {
ngModel.$validators.requirepaycode = function (modelValue, viewValue) {
return !scope.selectingPayCode() || (modelValue != null && modelValue != "");
}
}
};
})
<input requirepaycode name="報件單號" entertab ui-mask="X999999999999" model-view-value="true" class='form-control' ng-focus="focusPayCode()" ng-disabled="!newmode && !editmode" ng-model='selectData["報件單號"]'><span style='color:red' ng-show="form1['報件單號'].$error.requirepaycode">*</span>
2017年9月8日 星期五
ng-if 使用注意事項
如果同時使用 ng-model,因為 ng-if是自己的 scope,所以需要用物件綁定才能正常運作,否則切換 ng-if 的值會重新產生scope,ng-model value 會回到預設值
ng-model="word.value" ng-if="show"
或者可以直接綁定parent 避免此問題
ng-model="$parent.wordvalue" ng-if="show"
ng-model="word.value" ng-if="show"
或者可以直接綁定parent 避免此問題
ng-model="$parent.wordvalue" ng-if="show"
ui-mask 使用方式
讓提示字元變成 ng-model 的一部分
ui-mask="X999999999999" model-view-value="true"
若輸入不完整也允許接受
ui-options="{clearOnBlur:false,allowInvalidValue:true }"
改變提示字元
ui-mask-placeholder-char="space"
自訂遮罩字元(以卡號為例)
.config(['uiMask.ConfigProvider', function (uiMaskConfigProvider) {
uiMaskConfigProvider.maskDefinitions({ 'C': /[a-zA-Z0-9*]/ });
}])
<input entertab ui-mask="CCCC CCCC CCCC CCCC CCCC" ui-mask-placeholder-char="space" ui-options="{clearOnBlur:false,allowInvalidValue:true }" model-view-value="false" type='text' class='form-control' ng-model='selectData["卡號"]'>
ui-mask="X999999999999" model-view-value="true"
若輸入不完整也允許接受
ui-options="{clearOnBlur:false,allowInvalidValue:true }"
改變提示字元
ui-mask-placeholder-char="space"
自訂遮罩字元(以卡號為例)
.config(['uiMask.ConfigProvider', function (uiMaskConfigProvider) {
uiMaskConfigProvider.maskDefinitions({ 'C': /[a-zA-Z0-9*]/ });
}])
<input entertab ui-mask="CCCC CCCC CCCC CCCC CCCC" ui-mask-placeholder-char="space" ui-options="{clearOnBlur:false,allowInvalidValue:true }" model-view-value="false" type='text' class='form-control' ng-model='selectData["卡號"]'>
訂閱:
文章 (Atom)
input 連結 datalist 用程式控制彈出選項
範例: nextTick(() => document.querySelector('input').showPicker()); ※僅支援現代瀏覽器
-
1. 設定檔案下載儲存位置為 C:\Users\%username%\AppData\Local\Google\Chrome\User Data\Default\Cache 2. 勾選"下載每個檔案前詢問儲存位置" 3. 針對不要下載的檔案類型於第一...
-
自動設定欄寬 sheet.Cells.AutoFitColumns(3, 20); // 必須設定 min 跟 max 才會正常作用 凍結欄位 sheet.View.FreezePanes(4, 4); 標題列 ws.PrinterSettings.RepeatRo...
-
使用 FreeSpire.XLS ... ep.Save(); using (var workbook = new Workbook()) using (var memStream = new MemoryStream()) { workbook.LoadFromSt...