my-bookmark/public/scripts/controllers/edit-controller.js

114 lines
4.0 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

app.controller('editCtr', ['$scope', '$state', '$timeout', 'bookmarkService', 'pubSubService', function($scope, $state, $timeout, bookmarkService, pubSubService) {
console.log("Hello , I enter editCtr...");
init();
semanticInit();
$scope.$watch('url', function(newValue, oldValue, scope) {
$scope.urlError = $scope.url == '';
});
$scope.$watch('title', function(newValue, oldValue, scope) {
$scope.titleError = $scope.title == '';
});
$scope.addTags = function() {
console.log('Hello , you have click add tag btn......');
$scope.newTags = $scope.newTags.replace(//g, ",").replace(/,+/g, ","); // 先将中文逗号替换成英文逗号,然后将多个英文逗号换成一个英文逗号
var tags = $scope.newTags.split(",");
var params = [];
tags.forEach(function(tag) {
tag = tag.replace(/(^\s*)|(\s*$)/g, '').replace(/\s+/g, ' '); // 去除前后空格,多个空格转为一个空格;
var find = false;
for (var i = 0; i < $scope.tags.length; i++) {
if ($scope.tags[i].name === tag) {
find = true;
$('.ui.fluid.search.dropdown').dropdown('set selected', $scope.tags[i].id); // 在标签上已有的直接加入标签
}
};
if (!find && tag !== '') {
params.push(tag);
}
});
console.log(params);
}
$scope.cancel = function() {
console.log('Hello , you have click cancel btn......');
}
$scope.ok = function() {
console.log('Hello , you have click ok btn......');
var selectedTags = $('.ui.modal.js-add-bookmark .ui.dropdown').dropdown('get value');
console.log($scope.url, $scope.title, $scope.description, $scope.public, selectedTags);
$scope.urlError = $scope.url == '';
$scope.titleError = $scope.title == '';
$scope.tagsError = (selectedTags.length == 0 || selectedTags.length > 3);
bookmarkService.addBookmark({
a: 'Hello i love this world'
}).then(
function(data) {
console.log(data);
},
function(errorMsg) {
console.log(errorMsg);
}
);
}
pubSubService.subscribe('MenuCtr.showAddBookmarkMoadl', $scope, function(event, params) {
console.log('subscribe MenuCtr.MenuCtr.showAddBookmarkMoadl', params);
$('.ui.modal.js-add-bookmark').modal('show');
$('.ui.modal.js-add-bookmark .ui.dropdown').dropdown('clear');
$('.ui.modal.js-add-bookmark .ui.dropdown').addClass('loading');
init();
var params = {
user_id: 1
};
getTags(params);
});
function getTags(params) {
bookmarkService.getTags(params).then(
function(data) {
$scope.tags = data;
semanticInit();
$('.ui.modal.js-add-bookmark .ui.dropdown').removeClass('loading');
},
function(errorMsg) {
console.log(errorMsg);
}
);
}
function semanticInit() {
setTimeout(() => {
$('.ui.dropdown').dropdown({
forceSelection: false,
maxSelections: 3,
onChange: function(value, text, $choice) {
var selectedTags = $('.ui.modal.js-add-bookmark .ui.dropdown').dropdown('get value');
$timeout(function() {
$scope.tagsError = (selectedTags.length == 0 || selectedTags.length > 3);
});
}
});
}, 1000);
}
function init() {
$scope.url = '';
$scope.title = '';
$scope.description = '';
$scope.newTags = '';
$scope.tags = []; // tag = {id:xxx, name:'yyy'}
$scope.urlError = false;
$scope.titleError = false;
$scope.tagsError = false;
$scope.public = '1';
}
}]);