묻고 답해요
131만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결태블로 레벨UP
안녕하세요! 태블로 사용 라이선스 관련해서 문의사항있습니다!
예전에 개인적으로 태블로를 사용해보고 싶어서 체험판 신청을 하였고 해당 시간들이 전부 소진이 되었습니다.혹시 해당 과목 이수를 위해서 태블로를 사용하고 싶은데 이런경우에는 어떻게 할 수 있을까요?? 구매를 하는 방법 외에는 별도 방법이 없을지 궁금합니다!
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
[FPGA 15장] BRAM Data Mover 모듈 설계 질문
안녕하세요 ! 다름이 아니라 초보자 입장에서 문득 햇갈리는 부분이 있어서 질문 남겨드립니다. data mover bram 코드 리뷰를 해주셨는데 해당 코드를 testbench를 포함하여 직접 다 작성한 것인지 아니면 templet 코드를 수정한 것인지 궁금합니다. 항상 친절하고 꼼꼼한 강의 감사합니다 !
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
M2 실리콘칩은 자바 버전 어떻게 설치해야하나요? [현재 17.0.7 버전]
M2 실리콘칩은 자바 버전 어떻게 설치해야하나요? [현재 17.0.7 버전] 5:24 부터 따라해도 문제없을까요? 터미널에서 설치하고나면 되돌리는 방법을 몰라요 ㅠㅠ
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
Kaggle T-23
import pandas as pd df = pd.read_csv('../input/bigdatacertificationkr/basic1.csv') df = df.sort_values('f1', ascending = False) f1_10 = df.iloc[9, 3] print(f1_10) df['f1'] = df['f1'].fillna(f1_10) print(df.shape) median1 = df['f1'].median() df = df.drop_duplicates(subset = ['age']) print(df.shape) median2 = df['f1'].median() print(median1) print(median2) print(abs(median2 - median1))위와 같이 코드 작성시 결과가88.0 (100, 8) (71, 8) 77.5 75.0 2.5로 나옵니다. 원래 풀이에는 중복값제거 중앙값이 77로 나와있는데 저는 코드를 수정해봐도 어디에 문제가 있는지 잘 모르겠습니다! 혹시 제 코드 어디에 문제가 있는걸까요?
-
미해결
로컬스토리지?에 데이터 넣는 방법이 궁금합니다.
안녕하세요.로컬스토리지?에 데이터를 넣고 싶은데 하는 방법을 몰라 문의드립니다코드는 아래와 같이 짜져 있고 로컬스토리지?에 저장해서 삭제하면 삭제된 데이터가 안보이게 하고 싶은데..추후에 추가 기능도 만들 예정입니다..ㅠㅠ검색을 해도 모르겠고..어려워서 문의 남겨 봅니다 ㅠㅠ/*sessionStorage.clear();*/ var list = [ { id: 300, name: '대성갈비', old: 18000, email: '백반', status: 'ㄱ월요일 휴일', birthday: '2018-04-12' }, { id: 500, name: '세븐갈비', old: 20000, email: '갈비', status: 'ㄱ월요일 휴일', birthday: '2018-04-1' }, { id: 400, name: '퍼니주', old: 10000, email: '오므라이스', status: 'ㄴ화요일 휴일', birthday: '2018-04-11' }, { id: 200, name: '멘야코노하', old: 18000, email: '돈까스', status: 'ㄴ화요일 휴일', birthday: '2018-04-12' }, { id: 150, name: '춘배버거', old: 18000, email: '햄버거', status: 'ㄷ수요일 휴일', birthday: '2018-04-12' }, { id: 150, name: '술래감자탕&순대국', old: 18000, email: '감자탕', status: 'ㄹ목요일 휴일', birthday: '2018-04-12' }, { id: 7, name: '빠오즈푸', old: 18000, email: '돈까스', status: 'ㄱ연중무휴', birthday: '2018-04-12' }, { id: 8, name: '하늘분식', old: 18000, email: '갈비', status: 'ㄱ연중무휴', birthday: '2018-04-12' }, { id: 9, name: '서울숲쭈꾸미', old: 18000, email: '쭈꾸미', status: 'ㄱ연중무휴', birthday: '2018-04-12' } ]; Vue.component('modal', { template: '#modal-template' }); new Vue({ el: '#ssfcrud', data: { list: list, item: {}, checkedList: [], filterToggle: false, filterByName: [], filterByStatus: [], sortById: false, sortByName: false, sortByOld: false, sortByStatus: false, sortByEmail: false, notification: false, showModal: false, modalType: 0, isFormValid: false }, computed: { listView: function () { var self = this; if (self.filterByName.length > 0 || self.filterByStatus.length > 0) { return self.list.filter(function(item) { return self.filterByName.indexOf(item.name) > -1 || self.filterByStatus.indexOf(item.status) > -1; }); } else { return self.list; } }, checkedAll: { get: function () { var self = this; if (self.checkedList.length > 0) { return self.listView.length == self.checkedList.length; } else { return false; } }, set: function (val) { var self = this; self.checkedList = []; if (val) { for (var i = 0; i < self.listView.length; i++) { self.checkedList.push(self.listView[i].id); } } else { self.checkedList = []; } } } }, watch: { sortById: function (val) { var self = this; self.listView = self.sortBy(self.listView, 'id', val); }, sortByName: function (val) { var self = this; self.listView = self.sortBy(self.listView, 'name', val); }, sortByOld: function (val) { var self = this; self.listView = self.sortBy(self.listView, 'old', val); }, sortByEmail: function (val) { var self = this; self.listView = self.sortBy(self.listView, 'email', val); }, sortByStatus: function (val) { var self = this; self.listView = self.sortBy(self.listView, 'status', val); } }, methods: { sortBy: function(array, param, reverse) { var filterA, filterB; return array.sort(function (a, b) { switch (param) { case 'id': filterA = a.id; filterB = b.id; break; case 'name': filterA = a.name; filterB = b.name; break; case 'old': filterA = a.old; filterB = b.old; break; case 'status': filterA = a.status; filterB = b.status; break; } if (reverse) { return (filterA > filterB) ? 1 : -1; } else { return (filterA < filterB) ? 1 : -1; } }); }, checkEmailValid: function (email) { var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; return re.test(email); }, openModal: function (item) { var self = this; if (item) { self.item = item; self.modalType = 2; } else { self.item = { id: self.list[self.list.length - 1].id + 1, name: null, old: null, email: null, status: 'created' }; self.modalType = 1; } self.showModal = true; }, submit: function (item) { var self = this; if (item.id == null || item.name == null || item.old == null || item.email == null || !self.checkEmailValid(item.email)) { self.isFormValid = true; } else { if (self.modalType == 1) { self.list.push(item); } else if (self.modalType == 2) { self.list.find(function (value, index) { if (value.id == item.id) { self.list[index] = item; } }); } else { return; } self.item = {}; self.showModal = false; } }, deleting: function (index) { var self = this; var confirmDelete = confirm("삭제 하시겠습니까?"); if (confirmDelete) { sessionStorage.setItem(index, index) self.list.splice(index, 1); } } }, filters: { getDayOfBirthday(val) { var temp = val.slice(4); var toYear = new Date().getFullYear(); var thisBirthday = toYear + temp; var _getDay = new Date(thisBirthday).getDay(); var todayDays = ['Chu Nhat', 'Thu 2', 'Thu 3', 'Thu 4', 'Thu 5', 'Thu 6', 'Thu 7']; return todayDays[_getDay]; } } });
-
미해결비트코인 선물거래 자동매매 시스템(저자직강)
binance open api 관련 질문
##### 초기설정from binance_f import RequestClientfrom binance_f.model.constant import *import comm.config as confg_api_key = conf.G_API_KEY # binance API keyg_secret_key = conf.G_SECRET_KEY # binance secret keycoin_name = 'BTCUSDT'request_client = RequestClient(api_key=g_api_key, secret_key=g_secret_key)============================위 코드에서 다음과 같은 에러가 생깁니다.ModuleNotFoundError Traceback (most recent call last) ~\AppData\Local\Temp\ipykernel_11680\3056222166.py in <module> 1 ##### 초기설정 2 ----> 3 from binance_f import requestclient 4 from binance_f.model.constant import * 5 import comm.config as conf C:\evan_future_bit\evan\binance_f\__init__.py in <module> 1 from binance_f.requestclient import RequestClient ----> 2 from binance_f.subscriptionclient import SubscriptionClient C:\evan_future_bit\evan\binance_f\subscriptionclient.py in <module> 4 from binance_f.impl.websocketrequestimpl import WebsocketRequestImpl 5 from binance_f.impl.websocketconnection import WebsocketConnection ----> 6 from binance_f.impl.websocketwatchdog import WebSocketWatchDog 7 from binance_f.impl.restapirequestimpl import RestApiRequestImpl 8 from binance_f.model import * C:\evan_future_bit\evan\binance_f\impl\websocketwatchdog.py in <module> 1 import threading 2 import logging ----> 3 from apscheduler.schedulers.blocking import BlockingScheduler 4 from binance_f.impl.websocketconnection import ConnectionState 5 from binance_f.impl.utils.timeservice import get_current_timestamp c:\python377\lib\site-packages\apscheduler-4.0.0a2-py3.7.egg\apscheduler\__init__.py in <module> 51 from ._context import current_job, current_scheduler, current_worker 52 from ._enums import CoalescePolicy, ConflictPolicy, JobOutcome, RunState ---> 53 from ._events import ( 54 DataStoreEvent, 55 Event, c:\python377\lib\site-packages\apscheduler-4.0.0a2-py3.7.egg\apscheduler\_events.py in <module> 13 from ._converters import as_aware_datetime, as_enum, as_uuid 14 from ._enums import JobOutcome ---> 15 from ._structures import JobResult 16 from ._utils import qualified_name 17 c:\python377\lib\site-packages\apscheduler-4.0.0a2-py3.7.egg\apscheduler\_structures.py in <module> 8 9 import attrs ---> 10 import tenacity.stop 11 import tenacity.wait 12 from attrs.validators import instance_of ModuleNotFoundError: No module named 'tenacity'
-
해결됨[웹 개발 풀스택 코스] Vue.js 프로젝트 투입 일주일 전 - 기초에서 실무까지
this.$router params 방식 질문
안녕하세요. 잘 안되는 부분이 있어서 질문하게 되었습니다. 현재 params로 넘길 시 id가 undefind라고 뜨고 query방식으로 넘길 시에는 데이터가 잘 넘어가는데 이유를 모르겠습니다..github에 있는 코드를 그대로 붙여봐도 똑같아서 질문드립니다 ㅠ params 방식ListToDetailView.vueconsole.log(customerId) this.$router.push({ name: 'DetailView', params: { id: customerId } })DetailView.vue console.log(this.$route) this.id = this.$route.params.id console.log(this.id)- index.js에서 router 등록 { path: '/template/p3/detail', name: 'DetailView', component: () => import( /* webpackChunkName: "template", webpackPrefetch:true */ '../views/11_template/p3/DetailView.vue' ) } 현재 log찍었을 때 router params에 id가 안들어있어서 goToDetail부분이 이상하다고 생각이드는데 혹시 몰라서 github에 있는 것을 그대로 붙여 쓰는데도 결과는 똑같더라고요 ㅠ 현재 customerId는 값이 들어오고있어요. goToDetail(customerId) { // this.$router.push({ // path: '/template/p3/detail', // query: { id: customerId } // }) console.log(customerId) this.$router.push({ name: 'DetailView', params: { id: customerId } }) // http://localhost:8080/template/p3/detail }, 그리고 index.js는 github에 있는 파일과 코드 동일합니다. query 방식ListToDetailView.vuethis.$router.push({ path: '/template/p3/detail', query: { id: customerId } })DetailView.vueconsole.log(this.$route.query.id) this.id = this.$route.query.id DetailView에서 EditView로 params로 넘길때도 똑같은 상황입니다 ㅠ라우터에 :id 를 쓰면 되긴 하는데 http://localhost:8080/template/p3/detail이런 형식이 안되다보니..
-
해결됨플렉스(Flex) 반응형 웹사이트 포트폴리오(The World's Best Cities)
반응형 적응형 구분
안녕하세요 선생님!플렉스 강의 너무 잘 듣고 있습니다.최근 플렉스 강의를 중반부 이상듣고 다른 사이트들 브라우저 검사로 스타일시트 염탐? 하고 있는데 궁금한점이 생겨서 문의드립니다.인프런 메인화면의 경우 브라우저 가로 사이즈를 줄이면 반응형으로 컨텐츠 영역이 크기에 맞게 줄어드는데크몽, 당근마켓 메인화면의 경우 브라우저 가로 사이즈를 줄이면컨텐츠 1200px 영역 양옆 마진만 줄어들면서 모바일 태블릿 영역까지 가면 가로스크롤이 길게 생기는데요...요런 사이트들은 브라우저 검사-> 토글디바이스툴바 로 아이폰12pro 선택하고 새로고침을 해야 모바일 레이아웃이 나오고 있는데해당 사이트들은 반응형 사이트가 아닌건가요? 적응형 웹 사이트의 경우 카카오뱅크, 다방 으로 pc, mobile 따로 사이트가 있는 적응형 사이트로 알고 있습니다.(실제로 위에 토글디바이스툴바 방식으로 새로고침 하면 m.***.com || ***.com/mobile)크몽, 당근마켓이 적응형일 경우 주소가 변경되야 될꺼 같은데 주소 변동이 없어서 더 궁금합니다;;제가 잘못 이해하고 있을 수도 있습니다.ㅠ답변 부탁드립니다. 감사합니다.
-
미해결Python 엑셀 프로그래밍 - with xlsxwriter
강의 자료 위치
강의 중간중간에 강의 jupyter notebook을 공유해 주신다고 하시는데 자료는 어디서 받을 수 있는건가요?"PDF 파일 다루기" 강의를 듣고있는데 공유해주신 notebook 참고해서 사용하라고 하는데, 공유해주신 파일이 어디에 있는지 알 수 없습니다.
-
미해결[유니티 레벨 업!] 모듈식으로 개발하는 퀘스트&업적 시스템
Category 스크립트 작성할때 Equals에 대해 궁금한게 있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. public override bool Equals(object other) => base.Equals(other);이 부분이 왜 추가가 되는건지 궁금합니다. 어짜피 Category 파라미터가 아닌 object형 파라미터는 재정의 안하면 자동으로 base의 Equals를 호출하는게 아닌가요? 이 부분이 헷갈려서... 질문드립니다
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
app.tsx 질문입니다
// import "../styles/globals.css"; import { ApolloClient, InMemoryCache, ApolloProvider } from "@apollo/client"; import type { AppProps } from "next/app"; export default function App({ Component }: AppProps): JSX.Element { const client = new ApolloClient({ uri: "http://backend-example.codebootcamp.co.kr/graphql", cache: new InMemoryCache(), //컴퓨터의 메모리에다가 백엔드에서 받아온 데이터 임시로 저장해 놓기 => 나중에 더 자세히 알아보기 }); //graphql 셋팅 return ( <div> <div> ============여기는 APP.js 컴포넌트 시작부분 입니다============== </div> <ApolloProvider client={client}> <Component /> </ApolloProvider> <div>============여기는 APP.js입니다==============</div> </div> ); }코드이고 Component에 빨간줄이 그어져서 마우스를 올려보니 'Component'은(는) JSX 구성 요소로 사용할 수 없습니다.Its type 'NextComponentType<NextPageContext, any, {}>' is not a valid JSX element type.'ComponentClass<{}, any> & { getInitialProps?(context: NextPageContext): any; }' 형식은 'ElementType' 형식에 할당할 수 없습니다.'ComponentClass<{}, any> & { getInitialProps?(context: NextPageContext): any; }' 형식은 'new (props: any) => Component<any, any, any>' 형식에 할당할 수 없습니다.구문 시그니처 반환 형식 'Component<{}, any, any>' 및 'Component<any, any, any>'이(가) 호환되지 않습니다.'render()'에서 반환되는 형식은 해당 형식 간에 호환되지 않습니다.'React.ReactNode' 형식은 'import("c:/Users/82109/OneDrive/\uBC14\uD0D5 \uD654\uBA74/codecamp-frontend-mentee/class/node_modules/@types/react-transition-group/node_modules/@types/react/index").ReactNode' 형식에 할당할 수 없습니다.'{}' 형식은 'ReactNode' 형식에 할당할 수 없습니다.ts(2786)(parameter) Component: NextComponentType<NextPageContext, any, {}> 라고 나오는데 실행해도 크게 문제는 없는거 같은데 ts로 바꾸면서 타입을 설정해주지 않아서 나오는 warning같은 느낌인건지 궁굼해서 질문 남깁니다.항상 좋은강의 감사드립니다!
-
미해결스프링 부트 - 핵심 원리와 활용
AppInitV1Servlet 사용시 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용] 안녕하세요, AppInitV1Servlet 를 사용할때, 02 pdf. 21쪽 HandlesTypes 를 사용하지도 않았는데, 어떻게 AppInitV1Servlet이 등록 된 것인가요..? MyContainerInitV2에서는 서블릿컨테이너 초기화 시점에, @HandlesTypes(AppInit.class)를 통해 지정해 주어set<Class<?>> c.... 를 통해 넣는 것은 이해가 되는데,이 과정이 자동으로 일어난것인가요?자동으로 일어났다고 보기에, Appinit은 직접 만든 인터페이스여서 이해가 되지 않습니다... 설명 부탁드립니당
-
해결됨Next.js 시작하기(feat. 지도 서비스 개발)
app폴더 방식
안녕하세요 선생님.제가 지금 npx create next app을 하면 pages가 아니라 app폴더 방식으로 버전 13이 기본으로 되어 있는 것 같습니다.13 버전으로 공부해도 괜찮을까요? getStaticProps함수 등 여러가지 기능이 바뀌었을 것 같아서요
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
섹션 40 관련 질문 드려요
섹션 40에서 postgres 관련된 부분에서 노션에 나와있는 부분과 같이 host와 비밀번호를 입력했는데 진행이 되질않는데요혹시 이 부분이 실습 불가능한 부분이라 영상만 봐도 되는 건가요?
-
해결됨
수강증관련
수강한 과목 회사지원을 해주고있어 수강증을 제출해야하는데제 이름과 금액 그리고 수강일자 나오도록 가능할까요? 6.15~12.15일까지 이런식으로요
-
미해결처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지] (업데이트)
MYSQL 수강하고 Pandas 강의로 넘어가도 될까요? (몽고DB수강 X)
안녕하세요. 전 열심히 잔재미코딩 선생님 강의 수강하고 있는 수강생입니다. 크롤링 기본,고급 강의 수료했고지금 열심히 SQL 듣고 있는 중입니다. 이 다음 단계로 MongoDB 건너띄고 판다스 강의로 넘어가도 강의 듣는데 문제없을까요? 조언 부탁드립니다. 감사합니다.
-
미해결카프카 완벽 가이드 - 코어편
자바 클라이언트 메세지 전송 테스트 실패
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요.자바 클라이언트에서 메세지 전송시 아래와 같은 오류가 발생합니다.저는 m1 유저라 UTM으로 가상환경 구성하였고,터미널에서 테스트시에는 이전 수업내용은 잘 작동하였는데, 자바클라이언트에서 오류가 발생하네요어떻게 해결하면 좋을까요?
-
미해결
로컬스토리지..? 활용방법에 대해 아시는분 계신가요..?
안녕하세요.궁금한게 있어 문의드립니다.현재 리스트 작성 페이지를 만들고 잇는데, 서버 연동은 안된상태입니다.다만 서버연동없이..?json 데이터를 저장할수가 잇다고 하는데 혹시 어떻게 해야 할지 알수 잇을까요..?현재는var list = [ { id: 300, name: '대성갈비', old: 18000, email: '백반', status: 'ㄱ월요일 휴일', birthday: '2018-04-12' }, { id: 500, name: '세븐갈비', old: 20000, email: '갈비', status: 'ㄱ월요일 휴일', birthday: '2018-04-1' }, { id: 400, name: '퍼니주', old: 10000, email: '오므라이스', status: 'ㄴ화요일 휴일', birthday: '2018-04-11' }, { id: 200, name: '멘야코노하', old: 18000, email: '돈까스', status: 'ㄴ화요일 휴일', birthday: '2018-04-12' }, { id: 150, name: '춘배버거', old: 18000, email: '햄버거', status: 'ㄷ수요일 휴일', birthday: '2018-04-12' }, { id: 150, name: '술래감자탕&순대국', old: 18000, email: '감자탕', status: 'ㄹ목요일 휴일', birthday: '2018-04-12' }, { id: 7, name: '빠오즈푸', old: 18000, email: '돈까스', status: 'ㄱ연중무휴', birthday: '2018-04-12' }, { id: 8, name: '하늘분식', old: 18000, email: '갈비', status: 'ㄱ연중무휴', birthday: '2018-04-12' }, { id: 9, name: '서울숲쭈꾸미', old: 18000, email: '쭈꾸미', status: 'ㄱ연중무휴', birthday: '2018-04-12' } ]; Vue.component('modal', { template: '#modal-template' }); new Vue({ el: '#ssfcrud', data: { list: list, item: {}, checkedList: [], filterToggle: false, filterByName: [], filterByStatus: [], sortById: false, sortByName: false, sortByOld: false, sortByStatus: false, sortByEmail: false, notification: false, showModal: false, modalType: 0, isFormValid: false }, computed: { listView: function () { var self = this; if (self.filterByName.length > 0 || self.filterByStatus.length > 0) { return self.list.filter(function(item) { return self.filterByName.indexOf(item.name) > -1 || self.filterByStatus.indexOf(item.status) > -1; }); } else { return self.list; } }, checkedAll: { get: function () { var self = this; if (self.checkedList.length > 0) { return self.listView.length == self.checkedList.length; } else { return false; } }, set: function (val) { var self = this; self.checkedList = []; if (val) { for (var i = 0; i < self.listView.length; i++) { self.checkedList.push(self.listView[i].id); } } else { self.checkedList = []; } } } }, watch: { sortById: function (val) { var self = this; self.listView = self.sortBy(self.listView, 'id', val); }, sortByName: function (val) { var self = this; self.listView = self.sortBy(self.listView, 'name', val); }, sortByOld: function (val) { var self = this; self.listView = self.sortBy(self.listView, 'old', val); }, sortByEmail: function (val) { var self = this; self.listView = self.sortBy(self.listView, 'email', val); }, sortByStatus: function (val) { var self = this; self.listView = self.sortBy(self.listView, 'status', val); } }, methods: { sortBy: function(array, param, reverse) { var filterA, filterB; return array.sort(function (a, b) { switch (param) { case 'id': filterA = a.id; filterB = b.id; break; case 'name': filterA = a.name; filterB = b.name; break; case 'old': filterA = a.old; filterB = b.old; break; case 'status': filterA = a.status; filterB = b.status; break; } if (reverse) { return (filterA > filterB) ? 1 : -1; } else { return (filterA < filterB) ? 1 : -1; } }); }, checkEmailValid: function (email) { var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; return re.test(email); }, openModal: function (item) { var self = this; if (item) { self.item = item; self.modalType = 2; } else { self.item = { id: self.list[self.list.length - 1].id + 1, name: null, old: null, email: null, status: 'created' }; self.modalType = 1; } self.showModal = true; }, submit: function (item) { var self = this; if (item.id == null || item.name == null || item.old == null || item.email == null || !self.checkEmailValid(item.email)) { self.isFormValid = true; } else { if (self.modalType == 1) { self.list.push(item); } else if (self.modalType == 2) { self.list.find(function (value, index) { if (value.id == item.id) { self.list[index] = item; } }); } else { return; } self.item = {}; self.showModal = false; } }, deleting: function (index) { var self = this; var confirmDelete = confirm("Are you sure to delete this?"); if (confirmDelete) { self.list.splice(index, 1); } } }, filters: { getDayOfBirthday(val) { var temp = val.slice(4); var toYear = new Date().getFullYear(); var thisBirthday = toYear + temp; var _getDay = new Date(thisBirthday).getDay(); var todayDays = ['Chu Nhat', 'Thu 2', 'Thu 3', 'Thu 4', 'Thu 5', 'Thu 6', 'Thu 7']; return todayDays[_getDay]; } } }); 이와같이 구성되어있고 삭제 누르면 삭제는 되는데 새로고침하면 다시 데이터가 원복되는 상황입니다...
-
미해결웹플로우(Webflow) 시작하기 - 코딩 없이 자유도 높은 프로토타입 만들기
SEO 관련
안녕하세요강의 듣고 웹플로우로 제작했습니다!감사합니다~!그런데 결국 사이트가 노출이 되어야 의미가 있는건데..네이버서치어드바이저에서 rss나 사이트맵 제출같은건 어떻게 해야되는지 모르겠더라구요ㅠㅠ그대로 뒀더니 수집 실패라고 뜨네요구글 태그 같은거도 어떻게 설치해야되는지 모르겠구요,. 다른 툴로는 쉽게 되던데, 웹플로우에서 하는건 검색도 잘 안되네요.홈페이지 완성 후 사이트가 노출 잘 되도록 하는 방법이나, 구글 태그 같은 툴 설치 하는 법에 대한 강의가 있었으면 좋겠습니다~!사실 당장 필요하긴한데..ㅠㅠ 너무 어렵네요..
-
미해결C++ Let's Make Games
혹시 마리오게임 만드는 예제에서 헤더파일하고는 어디있나요?
넘겨가면서 보느라 이전 강의들에 있나 찾아보는데도 안보여서 Core.h 파일이 갑자기 생겼네요