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

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

11
ฉันจะโพสต์ข้อมูลแบบฟอร์ม urlencoded ด้วย $ http โดยไม่ต้อง jQuery ได้อย่างไร
ฉันยังใหม่กับ AngularJS และสำหรับการเริ่มต้นฉันคิดว่าจะพัฒนาแอปพลิเคชันใหม่โดยใช้ AngularJS เท่านั้น ฉันพยายามโทร AJAX ไปยังฝั่งเซิร์ฟเวอร์โดยใช้$httpจากแอพเชิงมุมของฉัน สำหรับการส่งพารามิเตอร์ฉันลองต่อไปนี้: $http({ method: "post", url: URL, headers: {'Content-Type': 'application/x-www-form-urlencoded'}, data: $.param({username: $scope.userName, password: $scope.password}) }).success(function(result){ console.log(result); }); นี่คือการทำงาน แต่มันก็ใช้ jQuery $.paramเช่นเดียวกับที่ สำหรับการลบการพึ่งพา jQuery ฉันพยายาม: data: {username: $scope.userName, password: $scope.password} แต่สิ่งนี้ดูเหมือนจะล้มเหลว จากนั้นฉันก็ลองparams: params: {username: $scope.userName, password: $scope.password} แต่สิ่งนี้ก็ดูเหมือนจะล้มเหลว จากนั้นฉันก็ลองJSON.stringify: data: JSON.stringify({username: $scope.userName, password: …

7
AngularJS: ng-show / ng-hide ไม่ทำงานกับการแก้ไข {{}} `
ฉันพยายามที่จะแสดง / ซ่อนบาง HTML ใช้ng-showและng-hideฟังก์ชั่นให้โดยAngularJS ตามเอกสารประกอบการใช้งานที่เกี่ยวข้องสำหรับฟังก์ชั่นเหล่านี้มีดังนี้: ngHide - {expression} - หากการแสดงออกจริงแล้วองค์ประกอบจะแสดงหรือซ่อนตามลำดับ ngShow - {expression} - หากการแสดงออกเป็นความจริงแล้วองค์ประกอบจะถูกแสดงหรือซ่อนตามลำดับ สิ่งนี้ใช้ได้กับ usecase ต่อไปนี้: <p ng-hide="true">I'm hidden</p> <p ng-show="true">I'm shown</p> อย่างไรก็ตามเราควรใช้พารามิเตอร์จากวัตถุเป็นนิพจน์แล้วng-hideและng-showจะได้รับถูกต้องtrue/ falseค่า แต่ค่าจะไม่ถือว่าเป็นบูลีนดังนั้นกลับมาfalse: แหล่ง <p ng-hide="{{foo.bar}}">I could be shown, or I could be hidden</p> <p ng-show="{{foo.bar}}">I could be shown, or I could be hidden</p> ผลลัพธ์ …

24
การโหลดหน้าซ้ำให้คำขอ GET ไม่ถูกต้องด้วยโหมด AngularJS HTML5
ฉันต้องการเปิดใช้งานโหมด HTML5 สำหรับแอปของฉัน ฉันได้ใส่รหัสต่อไปนี้สำหรับการกำหนดค่าตามที่แสดงที่นี่ : return app.config(['$routeProvider','$locationProvider', function($routeProvider,$locationProvider) { $locationProvider.html5Mode(true); $locationProvider.hashPrefix = '!'; $routeProvider.when('/', { templateUrl: '/views/index.html', controller: 'indexCtrl' }); $routeProvider.when('/about',{ templateUrl: '/views/about.html', controller: 'AboutCtrl' }); ที่คุณสามารถดูผมใช้$locationProvider.html5modeและผมเปลี่ยนการเชื่อมโยงทั้งหมดของฉันที่จะไม่รวมng-href/#/ ปัญหา ในขณะที่ฉันสามารถไปlocalhost:9000/และดูหน้าดัชนีและนำทางไปยังหน้าเว็บอื่น ๆ localhost:9000/aboutเช่น อย่างไรก็ตามปัญหาเกิดขึ้นเมื่อฉันรีเฟรชlocalhost:9000/aboutหน้า ฉันได้รับผลลัพธ์ต่อไปนี้:Cannot GET /about ถ้าฉันดูเครือข่ายโทร: Request URL:localhost:9000/about Request Method:GET ในขณะที่ถ้าฉันไปที่localhost:9000/แล้วคลิกที่ปุ่มที่นำทางไปยัง/aboutฉันได้รับ: Request URL:http://localhost:9000/views/about.html ซึ่งแสดงผลหน้าเว็บได้อย่างสมบูรณ์แบบ ฉันจะเปิดใช้งานเชิงมุมเพื่อรับหน้าที่ถูกต้องเมื่อฉันรีเฟรช?


11
เงื่อนไขแบบอินไลน์ใน angular.js
ฉันสงสัยว่ามีวิธีหนึ่งในการแสดงเนื้อหาแบบมีเงื่อนไขนอกเหนือจากการใช้ ng-show ฯลฯ ตัวอย่างเช่นใน backbone.js ฉันสามารถทำอะไรกับเนื้อหาแบบอินไลน์ในเทมเพลตเช่น: <% if (myVar === "two") { %> show this<% } %> แต่ในเชิงมุมฉันดูเหมือนจะถูก จำกัด ให้แสดงและซ่อนสิ่งต่าง ๆ ที่อยู่ในแท็ก html <p ng-hide="true">I'm hidden</p> <p ng-show="true">I'm shown</p> อะไรคือวิธีที่แนะนำในเชิงมุมเพื่อแสดงและซ่อนเนื้อหาอินไลน์ในเชิงมุมโดยใช้เพียง {{}} แทนที่จะห่อเนื้อหาในแท็ก html

13
AngularJS ไม่ส่งค่าเขตข้อมูลที่ซ่อนอยู่
สำหรับกรณีการใช้งานเฉพาะฉันต้องส่งแบบฟอร์มเดียว "เก่า" หมายถึงฉันใช้แบบฟอร์มที่มี action = "" การตอบกลับถูกสตรีมดังนั้นฉันไม่โหลดหน้าซ้ำ ฉันทราบดีว่าแอป AngularJS ทั่วไปจะไม่ส่งแบบฟอร์มนั้น แต่จนถึงตอนนี้ฉันไม่มีทางเลือกอื่น ที่กล่าวว่าฉันพยายามเติมฟิลด์ที่ซ่อนอยู่บางส่วนจาก Angular: <input type="hidden" name="someData" ng-model="data" /> {{data}} โปรดทราบว่าค่าที่ถูกต้องในข้อมูลจะปรากฏขึ้น ฟอร์มดูเหมือนว่าฟอร์มมาตรฐาน: <form id="aaa" name="aaa" action="/reports/aaa.html" method="post"> ... <input type="submit" value="Export" /> </form> หากฉันกดปุ่มส่งจะไม่มีการส่งค่าใด ๆ ไปยังเซิร์ฟเวอร์ ถ้าฉันเปลี่ยนฟิลด์อินพุตให้พิมพ์ "text" มันทำงานได้ตามที่คาดไว้ ข้อสันนิษฐานของฉันคือเขตข้อมูลที่ซ่อนอยู่ไม่ได้บรรจุจริง ๆ ในขณะที่เขตข้อมูลข้อความจะแสดงเนื่องจากการผูกสองทาง แนวคิดใดบ้างที่ฉันสามารถส่งฟิลด์ที่ซ่อนอยู่ซึ่งบรรจุโดย AngularJS

3
ความแตกต่างระหว่างวงเล็บปีกกาคู่และเดี่ยวใน JS เชิงมุมคืออะไร?
ฉันยังใหม่กับโลกเชิงมุมนี้ฉันค่อนข้างสับสนกับการใช้เครื่องหมายปีกกาคู่ {{}} และวงเล็บปีกกาเดี่ยว {} หรือบางครั้งไม่มีการใช้เครื่องหมายปีกกาหยิกเพื่อรวมการแสดงออกเช่นในคำสั่ง ng-class={expression} normal data binding like{{obj.key}} ng-hide='mydata==="red"'
192 angularjs 

5
ฉันสามารถทำให้ฟังก์ชั่นนั้นมีอยู่ในคอนโทรลเลอร์ทุกตัวในเชิงมุมได้หรือไม่
ถ้าฉันมีฟังก์ชั่นยูทิลิตี้fooที่ฉันต้องการที่จะสามารถโทรจากที่ใดก็ได้ภายในng-appประกาศของฉัน มีบางอย่างที่ฉันสามารถทำให้สามารถเข้าถึงได้ทั่วโลกในการตั้งค่าโมดูลของฉันหรือฉันจำเป็นต้องเพิ่มมันเข้าไปในขอบเขตในทุก ๆ คอนโทรลเลอร์?

11
คุณสามารถเปลี่ยนเส้นทางโดยไม่โหลดตัวควบคุมใน AngularJS ใหม่ได้หรือไม่?
มันเคยถูกถามมาก่อนและจากคำตอบมันดูไม่ดี ฉันต้องการถามด้วยรหัสตัวอย่างนี้เพื่อประกอบการพิจารณา ... แอพของฉันโหลดรายการปัจจุบันในบริการที่ให้บริการ มีตัวควบคุมหลายตัวที่จัดการกับข้อมูลรายการโดยไม่ต้องโหลดรายการใหม่ ตัวควบคุมของฉันจะโหลดรายการใหม่หากยังไม่ได้ตั้งค่ามิฉะนั้นจะใช้รายการที่โหลดในปัจจุบันจากบริการระหว่างตัวควบคุม ปัญหา : ฉันต้องการใช้พา ธ ที่แตกต่างกันสำหรับแต่ละคอนโทรลเลอร์โดยไม่ต้องโหลด Item.html ซ้ำ 1) เป็นไปได้ไหม? 2) หากไม่สามารถทำได้มีวิธีที่ดีกว่าในการมีเส้นทางต่อตัวควบคุมเทียบกับสิ่งที่ฉันเกิดขึ้นที่นี่ app.js var app = angular.module('myModule', []). config(['$routeProvider', function($routeProvider) { $routeProvider. when('/items', {templateUrl: 'partials/items.html', controller: ItemsCtrl}). when('/items/:itemId/foo', {templateUrl: 'partials/item.html', controller: ItemFooCtrl}). when('/items/:itemId/bar', {templateUrl: 'partials/item.html', controller: ItemBarCtrl}). otherwise({redirectTo: '/items'}); }]); Item.html <!-- Menu --> <a …
191 angularjs 

10
วิธีการใช้ history.back () ใน angular.js
ฉันมีคำสั่งซึ่งเป็นส่วนหัวของไซต์พร้อมปุ่มย้อนกลับและฉันต้องการให้คลิกเพื่อกลับไปยังหน้าก่อนหน้า ฉันจะทำในลักษณะที่เป็นเหลี่ยมได้อย่างไร ฉันเหนื่อย: <header class="title"> <a class="back" ng-class="icons"><img src="../media/icons/right_circular.png" ng-click="history.back()" /></a> <h1>{{title}}</h1> <a href="/home" class="home" ng-class="icons"><img src="../media/icons/53-house.png" /></a> </header> และนี่คือคำสั่ง js: myApp.directive('siteHeader', function () { return { restrict: 'E', templateUrl: 'partials/siteHeader.html', scope: { title: '@title', icons: '@icons' } }; }); แต่ไม่มีอะไรเกิดขึ้น ผมมองใน API angular.js เกี่ยวกับ$ สถานที่history.back()แต่ไม่พบอะไรเกี่ยวกับปุ่มย้อนกลับหรือ

10
AngularJS วิธีการเรียกใช้ฟังก์ชั่นคอนโทรลเลอร์จากด้านนอกของส่วนประกอบคอนโทรลเลอร์
ฉันจะเรียกฟังก์ชั่นที่กำหนดภายใต้ตัวควบคุมจากที่ใดก็ได้ของหน้าเว็บ (นอกองค์ประกอบของตัวควบคุม)? มันทำงานได้อย่างสมบูรณ์แบบเมื่อฉันกดปุ่ม "รับ" แต่ฉันต้องเรียกมันจากตัวควบคุม div ภายนอก ตรรกะคือ: โดยค่าเริ่มต้น div ของฉันถูกซ่อนอยู่ ที่ไหนสักแห่งในเมนูนำทางฉันกดปุ่มและมันควรจะแสดง () div ของฉันและเรียกใช้ฟังก์ชัน "get" ฉันจะทำสิ่งนี้สำเร็จได้อย่างไร? หน้าเว็บของฉันคือ: <div ng-controller="MyController"> <input type="text" ng-model="data.firstname" required> <input type='text' ng-model="data.lastname" required> <form ng-submit="update()"><input type="submit" value="update"></form> <form ng-submit="get()"><input type="submit" value="get"></form> </div> js ของฉัน: function MyController($scope) { // default data and structure $scope.data = { …
190 angularjs 

8
มีวิธีทำให้ AngularJS โหลด partials ในตอนเริ่มต้นหรือไม่เมื่อจำเป็น?
ฉันมีการตั้งค่าเส้นทางเช่นนี้: var myApp = angular.module('myApp', []). config(['$routeProvider', function ($routeProvider) { $routeProvider. when('/landing', { templateUrl: '/landing-partial', controller: landingController }). when('/:wkspId/query', { templateUrl: '/query-partial', controller: queryController }). otherwise({ redirectTo: '/landing' }); }]); ฉันต้องการให้สามารถดาวน์โหลด angularjs ได้ทั้งตอนแรกและตอนที่ร้องขอ เป็นไปได้ไหม?
190 angularjs 

8
จะยกเลิกคำขอ $ http ใน AngularJS ได้อย่างไร
รับคำขอ Ajax ใน AngularJS $http.get("/backend/").success(callback); วิธีที่มีประสิทธิภาพมากที่สุดในการยกเลิกคำขอนั้นคือถ้ามีการเปิดตัวคำขออื่น (เช่นแบ็กเอนด์เดียวกันพารามิเตอร์ที่แตกต่างกัน)

5
ตัวเลือก ng กับ init อาร์เรย์ที่เรียบง่าย
ฉันนิด ๆ หน่อย ๆ ng-optionsสับสนกับเชิงมุมและ ฉันมีอาร์เรย์ที่เรียบง่ายและฉันต้องการเริ่มต้นการเลือกด้วย แต่ฉันต้องการตัวเลือก value = label script.js $scope.options = ['var1', 'var2', 'var3']; HTML <select ng-model="myselect" ng-options="o for o in options"></select> สิ่งที่ฉันได้รับ: <option value="0">var1</option> <option value="1">var2</option> <option value="2">var3</option> สิ่งที่ฉันต้องการ: <option value="var1">var1</option> <option value="var2">var2</option> <option value="var3">var3</option> ดังนั้นฉันจึงพยายาม: <select ng-model="myselect2" ng-init=0 ng-options="options[k] as v for (k,v) in options"></select> <select …

6
AngularJS เปลี่ยน URL เป็น“ ไม่ปลอดภัย:” ในหน้าส่วนขยาย
ฉันกำลังพยายามใช้ Angular กับรายการแอพและแต่ละอันเป็นลิงค์เพื่อดูแอปในรายละเอียดเพิ่มเติม ( apps/app.id): <a id="{{app.id}}" href="apps/{{app.id}}" >{{app.name}}</a> ทุกครั้งที่ฉันคลิกลิงก์ใดลิงก์หนึ่งเหล่านี้ Chrome จะแสดง URL เป็น unsafe:chrome-extension://kpbipnfncdpgejhmdneaagc.../apps/app.id ที่ไหนที่ไม่unsafe:มาจากไหน?

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