คำถามติดแท็ก angularjs

ใช้สำหรับคำถามเกี่ยวกับ AngularJS (1.x), เฟรมเวิร์ก JavaScript แบบโอเพ่นซอร์ส อย่าใช้แท็กนี้สำหรับ Angular 2 หรือใหม่กว่า; ใช้แท็ก [angular] แทน

2
ฉันควรใช้ typescript หรือไม่ หรือฉันสามารถใช้ ES6 ได้ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ปรับปรุงคำถามนี้ งานประจำวันของฉันคือผู้พัฒนาลูกค้าโดยใช้ AngularJS เรากำลังประเมินว่าเราต้องการไปกับ TypeScript หรือไม่ ฉันทำการค้นคว้าเกี่ยวกับ typescript และเกือบทุกแพคเกจ JavaScript ที่ฉันต้องการจะต้องมีไฟล์ประเภทคำจำกัดความ ฉันพบว่าไม่สะดวกมากโดยเฉพาะถ้าฉันต้องการลองอะไรใหม่ ๆ และพวกเขาไม่มีคำจำกัดความสำหรับมัน มันน่าผิดหวังจริงๆ (แม้แต่นิยาม jQuery ปัจจุบันยังทำให้ฉันมีปัญหาถ้าฉันต้องการใช้ typescript 1.5 เบต้า) ฉันเริ่มดู ES6 และดูเหมือนว่า TypeScript ฉันควรใช้ ES6 แทนไหม นอกจากนี้ฉันได้ยินมาว่า angular 2 จะได้รับการสนับสนุนอย่างเต็มที่สำหรับ TypeScript นั่นเป็นเหตุผลหนึ่งที่ฉันควรจะอยู่กับมันหรือไม่

4
จะใช้ ng-repeat สำหรับพจนานุกรมใน AngularJs ได้อย่างไร?
ฉันรู้ว่าเราสามารถใช้ซ้ำ ngสำหรับวัตถุหรืออาร์เรย์ json เช่น: <div ng-repeat="user in users"></div> แต่เราจะใช้ ng-repeat สำหรับพจนานุกรมได้อย่างไร: var users = null; users["182982"] = "{...json-object...}"; users["198784"] = "{...json-object...}"; users["119827"] = "{...json-object...}"; ฉันต้องการใช้กับพจนานุกรมผู้ใช้: <div ng-repeat="user in users"></div> เป็นไปได้ไหม?. ถ้าใช่ฉันจะทำใน AngularJs ได้อย่างไร ตัวอย่างสำหรับคำถามของฉัน: ใน C # เรากำหนดพจนานุกรมเช่น: Dictionary<key,value> dict = new Dictionary<key,value>(); //and then we can search for values, …

11
วิธีที่ดีที่สุดในการแสดง Grid หรือ Table ใน AngularJS ด้วย Bootstrap 3 [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันกำลังสร้างแอพด้วย AngularJS และ Bootstrap 3 ฉันต้องการแสดงตาราง / ตารางที่มีหลายพันแถว อะไรคือการควบคุมที่ดีที่สุดสำหรับ AngularJS และ Bootstrap พร้อมคุณสมบัติเช่นการเรียงลำดับการค้นหาการแบ่งหน้า ฯลฯ

4
$ on และ $ ออกอากาศในเชิงมุม
ฉันมีส่วนท้ายส่วนท้ายและโค้ดสแกนเนอร์ตัวควบคุมพร้อมมุมมองที่แตกต่างกัน angular.module('myApp').controller('footerController', ["$scope", function($scope) {}]); angular.module('myApp').controller('codeScannerController', ["$scope", function($scope) { console.log("start"); $scope.startScanner = function(){... เมื่อฉันคลิกที่<li>ใน footer.html ฉันควรได้รับเหตุการณ์นี้ใน codeScannerController <li class="button" ng-click="startScanner()">3</li> ฉันคิดว่ามันสามารถรับรู้ได้ด้วย$onและ$broadcastแต่ฉันไม่รู้วิธีและไม่สามารถหาตัวอย่างได้ทุกที่

12
ng-model สำหรับ `<input type =“ file” />` (พร้อมคำสั่งสาธิต)
ฉันพยายามใช้ ng-model บนแท็กอินพุตพร้อมไฟล์ประเภท: &lt;input type="file" ng-model="vm.uploadme" /&gt; แต่หลังจากเลือกไฟล์ในตัวควบคุม $ scope.vm.uploadme ยังคงไม่ได้กำหนด ฉันจะรับไฟล์ที่เลือกในคอนโทรลเลอร์ได้อย่างไร

15
AngularJs: จะตรวจสอบการเปลี่ยนแปลงในฟิลด์อินพุตไฟล์ได้อย่างไร?
ฉันใหม่สำหรับเชิงมุม ฉันพยายามอ่านเส้นทางของไฟล์ที่อัปโหลดจากฟิลด์ 'ไฟล์' ของ HTML ทุกครั้งที่มีการ 'เปลี่ยนแปลง' เกิดขึ้นในฟิลด์นี้ ถ้าฉันใช้ 'onChange' มันใช้งานได้ แต่เมื่อฉันใช้วิธีเชิงมุมโดยใช้ 'ng-change' มันจะไม่ทำงาน &lt;script&gt; var DemoModule = angular.module("Demo",[]); DemoModule .controller("form-cntlr",function($scope){ $scope.selectFile = function() { $("#file").click(); } $scope.fileNameChaged = function() { alert("select file"); } }); &lt;/script&gt; &lt;div ng-controller="form-cntlr"&gt; &lt;form&gt; &lt;button ng-click="selectFile()"&gt;Upload Your File&lt;/button&gt; &lt;input type="file" style="display:none" id="file" name='file' ng-Change="fileNameChaged()"/&gt; &lt;/form&gt; …
281 angularjs 

17
คุณสามารถส่งพารามิเตอร์ไปยังตัวควบคุม AngularJS เมื่อสร้างได้หรือไม่?
ฉันมีตัวควบคุมที่รับผิดชอบในการสื่อสารกับ API เพื่ออัปเดตคุณสมบัติของผู้ใช้ชื่ออีเมล ฯลฯ ผู้ใช้แต่ละคนมีสิ่ง'id'ที่ส่งผ่านจากเซิร์ฟเวอร์เมื่อมีการดูหน้าโปรไฟล์ ฉันต้องการส่งค่านี้ไปยังตัวควบคุม AngularJS เพื่อให้ทราบว่าจุดเข้าใช้ API คืออะไรสำหรับผู้ใช้ปัจจุบัน ฉันพยายามส่งผ่านค่าng-controllerมา ตัวอย่างเช่น: function UserCtrl(id, $scope, $filter) { $scope.connection = $resource('api.com/user/' + id) และใน HTML &lt;body ng-controller="UserCtrl({% id %})"&gt; โดย{% id %}พิมพ์รหัสที่ส่งจากเซิร์ฟเวอร์ แต่ฉันได้รับข้อผิดพลาด วิธีที่ถูกต้องในการส่งผ่านค่าเป็นตัวควบคุมในการสร้างมันคืออะไร?

10
วิธียกเลิกการสมัครรับข้อมูลการออกอากาศใน angularJS วิธีลบฟังก์ชั่นที่ลงทะเบียนผ่านทาง $ on
ฉันได้ลงทะเบียนผู้ฟังของฉันไปยังเหตุการณ์ $ broadcast โดยใช้ $ on function $scope.$on("onViewUpdated", this.callMe); และฉันต้องการยกเลิกการลงทะเบียนผู้ฟังนี้ตามกฎทางธุรกิจเฉพาะ แต่ปัญหาของฉันคือเมื่อลงทะเบียนแล้วฉันไม่สามารถยกเลิกการลงทะเบียนได้ มีวิธีการใดใน AngularJS ที่จะยกเลิกการลงทะเบียนผู้ฟังหรือไม่? วิธีการเช่น $ สำหรับการยกเลิกการลงทะเบียนกิจกรรมนี้อาจเป็น $ off เพื่อให้เป็นไปตามตรรกะทางธุรกิจที่ฉันสามารถพูดได้ $scope.$off("onViewUpdated", this.callMe); และฟังก์ชั่นนี้หยุดถูกเรียกเมื่อมีคนออกอากาศเหตุการณ์ "onViewUpdated" ขอบคุณ แก้ไข : ฉันต้องการยกเลิกการลงทะเบียนฟังจากฟังก์ชั่นอื่น ไม่ใช่ฟังก์ชั่นที่ฉันลงทะเบียน
278 angularjs 


12
วิธีเพิ่มการตรวจสอบความถูกต้องที่กำหนดเองไปยังแบบฟอร์ม AngularJS?
ฉันมีรูปแบบที่มีช่องป้อนข้อมูลและการตั้งค่าการตรวจสอบความถูกต้องโดยการเพิ่มrequiredคุณสมบัติและเช่น แต่สำหรับบางสาขาฉันต้องทำการตรวจสอบเพิ่มเติม ฉันจะ "แตะ" เพื่อตรวจสอบความถูกต้องที่FormControllerควบคุมได้อย่างไร การตรวจสอบความถูกต้องที่กำหนดเองอาจเป็นอะไรบางอย่างเช่น "ถ้ากรอกข้อมูลทั้ง 3 ฟิลด์แล้วจำเป็นต้องกรอกข้อมูลในฟิลด์นี้และต้องจัดรูปแบบด้วยวิธีใดวิธีหนึ่ง" มีวิธีการFormController.$setValidityแต่ไม่เหมือน API สาธารณะดังนั้นฉันจึงไม่ควรใช้ การสร้างคำสั่งที่กำหนดเองและการใช้NgModelControllerดูเหมือนกับตัวเลือกอื่น แต่โดยพื้นฐานแล้วฉันจะต้องสร้างคำสั่งสำหรับกฎการตรวจสอบความถูกต้องที่กำหนดเองซึ่งฉันไม่ต้องการ ที่จริงแล้วการทำเครื่องหมายเขตข้อมูลจากตัวควบคุมไม่ถูกต้อง (ในขณะที่ยังคงFormControllerซิงค์อยู่) อาจเป็นสิ่งที่ฉันต้องการในสถานการณ์ที่ง่ายที่สุดเพื่อให้งานเสร็จ แต่ฉันไม่รู้วิธีการทำเช่นนั้น
278 angularjs 

7
AngularJS: ล้าง $ watch
ฉันมีฟังก์ชั่นนาฬิกาในแอปพลิเคชัน AngularJS ของฉัน $scope.$watch('quartzCrystal', function () { ... } อย่างไรก็ตามหลังจากเงื่อนไขบางอย่าง (ในตัวอย่างของฉันการเปลี่ยนหน้าในแอปพลิเคชันหน้าเดียวของฉัน) ฉันต้องการหยุดการเฝ้าดูนั้น (เช่นการล้างการหมดเวลา) ฉันจะทำสิ่งนั้นได้อย่างไร

16
ปฏิเสธที่จะแสดงในเฟรมเนื่องจากตั้งค่า 'X-Frame-Options' เป็น 'SAMEORIGIN'
ฉันกำลังพัฒนาเว็บไซต์ที่ควรจะตอบสนองเพื่อให้ผู้คนสามารถเข้าถึงได้จากโทรศัพท์ของพวกเขา ไซต์มีบางส่วนที่ปลอดภัยซึ่งสามารถลงชื่อเข้าใช้ด้วย Google, Facebook, ... ฯลฯ (OAuth) แบ็กเอนด์ของเซิร์ฟเวอร์ได้รับการพัฒนาโดยใช้ ASP.Net Web API 2 และส่วนหน้าส่วนใหญ่เป็น AngularJS พร้อมกับมีดโกนบางส่วน สำหรับส่วนการรับรองความถูกต้องทุกอย่างทำงานได้ดีในเบราว์เซอร์ทั้งหมดรวมถึง Android แต่การรับรองความถูกต้องของ Google ไม่ทำงานบน iPhone และมันทำให้ฉันข้อความผิดพลาดนี้ Refused to display 'https://accounts.google.com/o/openid2/auth ?openid.ns=http://specs.openid.ne…tp://axschema.org/namePerson /last&amp;openid.ax.required=email,name,first,last' in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'. ตอนนี้ฉันกังวลว่าฉันจะไม่ใช้ iframe ใด ๆ ในไฟล์ HTML ของฉัน ฉัน googled ไปรอบ ๆ แต่ไม่มีคำตอบให้ฉันแก้ไขปัญหา

18
การเปลี่ยนเส้นทางไม่ได้เลื่อนไปด้านบนในหน้าใหม่
ฉันพบพฤติกรรมที่ไม่พึงประสงค์อย่างน้อยสำหรับฉันเมื่อเส้นทางเปลี่ยนไป ในขั้นตอนที่ 11 ของบทช่วยสอนhttp://angular.github.io/angular-phonecat/step-11/app/#/phones คุณสามารถดูรายการโทรศัพท์ หากคุณเลื่อนไปที่ด้านล่างและคลิกที่หนึ่งในล่าสุดคุณจะเห็นว่าการเลื่อนนั้นไม่ได้อยู่ที่ด้านบนแทนที่จะเป็นแบบกึ่งกลาง ฉันพบสิ่งนี้ในหนึ่งในแอพของฉันด้วยและฉันก็สงสัยว่าฉันจะทำให้มันเลื่อนไปด้านบนได้อย่างไร ฉันสามารถทำได้ด้วยตนเอง แต่ฉันคิดว่าควรมีวิธีที่สง่างามในการทำสิ่งนี้ซึ่งฉันไม่รู้ ดังนั้นมีวิธีที่สวยงามเพื่อเลื่อนไปด้านบนเมื่อเส้นทางเปลี่ยน?

13
รุ่น Ng ไม่อัพเดทค่าคอนโทรลเลอร์
อาจเป็นคำถามที่โง่ แต่ฉันมีรูปแบบ html ของฉันด้วยการป้อนข้อมูลและปุ่มอย่างง่าย: &lt;input type="text" ng-model="searchText" /&gt; &lt;button ng-click="check()"&gt;Check!&lt;/button&gt; {{ searchText }} จากนั้นในตัวควบคุม (แม่แบบและตัวควบคุมจะถูกเรียกจาก routeProvider): $scope.check = function () { console.log($scope.searchText); } เหตุใดฉันจึงเห็นมุมมองที่อัปเดตอย่างถูกต้อง แต่ไม่ได้กำหนดในคอนโซลเมื่อคลิกปุ่ม ขอบคุณ! อัปเดต: ดูเหมือนว่าฉันได้แก้ไขปัญหานั้นจริง ๆ แล้ว (ก่อนที่จะต้องแก้ไขปัญหาบางอย่าง) ด้วย: ต้องเปลี่ยนชื่อคุณสมบัติของฉันจากsearchTextเป็นsearch.textแล้วกำหนด$scope.search = {};วัตถุว่างในคอนโทรลเลอร์และ voila ... ไม่รู้เลยว่าทำไมมันถึงใช้งานได้ แม้ว่า;]

11
AngularJS ng-style พร้อมนิพจน์เงื่อนไข
ฉันกำลังจัดการปัญหาของฉันเช่นนี้: ng-style="{ width: getTheValue() }" แต่เพื่อหลีกเลี่ยงการมีฟังก์ชั่นนี้ที่ด้านควบคุมฉันอยากทำอะไรแบบนี้: ng-style="{ width: myObject.value == 'ok' ? '100%' : '0%' }" ฉันจะทำสิ่งนี้ได้อย่างไร

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.