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

ใน AngularJS ขอบเขตคืออ็อบเจ็กต์ที่อ้างถึงโมเดลแอ็พพลิเคชัน เป็นบริบทการดำเนินการสำหรับนิพจน์


6
เหตุใดจึงใช้ if (! $ scope. $$ phase) $ scope. $ apply () an anti-pattern?
บางครั้งฉันจำเป็นต้องใช้$scope.$applyในโค้ดของฉันและบางครั้งก็แสดงข้อผิดพลาด "การสรุปข้อมูลที่กำลังดำเนินการอยู่" ดังนั้นผมจึงเริ่มที่จะหาทางรอบนี้และพบว่าคำถามนี้: AngularJS:. ป้องกันข้อผิดพลาด $ ย่อยแล้วในความคืบหน้าเมื่อโทร $ $ ขอบเขตใช้ () อย่างไรก็ตามในความคิดเห็น (และในวิกิเชิงมุม) คุณสามารถอ่าน: อย่าทำถ้า (! $ scope. $$ phase) $ scope $ apply () หมายความว่า $ ขอบเขตของคุณ $ apply () ไม่สูงพอใน call stack ตอนนี้ฉันมีสองคำถาม: เหตุใดจึงเป็นรูปแบบการต่อต้าน? ฉันจะใช้ $ scope อย่างปลอดภัย $ สมัครได้อย่างไร "วิธีแก้ปัญหา" อื่นเพื่อป้องกันข้อผิดพลาด "ไดเจสต์กำลังดำเนินการอยู่" ดูเหมือนว่ากำลังใช้ $ timeout: $timeout(function() { …

2
AngularJS Directive element การผูก - TypeError: ไม่สามารถใช้ตัวดำเนินการ 'in' เพื่อค้นหา 'functionName' ใน 1
นี่คือตัวควบคุมของเทมเพลตหลัก: app.controller('OverviewCtrl', ['$scope', '$location', '$routeParams', 'websiteService', 'helperService', function($scope, $location, $routeParams, websiteService, helperService) { ... $scope.editWebsite = function(id) { $location.path('/websites/edit/' + id); }; }]); นี่คือคำสั่ง: app.directive('wdaWebsitesOverview', function() { return { restrict: 'E', scope: { heading: '=', websites: '=', editWebsite: '&' }, templateUrl: 'views/websites-overview.html' } }); นี่คือวิธีใช้คำสั่งในเทมเพลตหลัก: <wda-websites-overview heading="'All websites'" websites="websites" edit-website="editWebsite(id)"></wda-websites-overview> …

5
วิธีการล้างหรือหยุด timeInterval ใน angularjs?
ฉันกำลังทำการสาธิตซึ่งฉันกำลังดึงข้อมูลจากเซิร์ฟเวอร์หลังจากช่วงเวลาปกติโดยใช้$intervalNow ฉันจำเป็นต้องหยุด / ยกเลิกสิ่งนี้ ฉันจะบรรลุเป้าหมายนี้ได้อย่างไร? หากฉันต้องการเริ่มกระบวนการใหม่ฉันควรทำอย่างไร? ประการที่สองฉันมีอีกหนึ่งคำถาม: ฉันกำลังดึงข้อมูลจากเซิร์ฟเวอร์หลังจากช่วงเวลาที่ต้องการ มีความจำเป็นต้องใช้$scope.applyหรือ$scope.watch? นี่คือผู้ทำลายล้างของฉัน: app.controller('departureContrl',function($scope,test, $interval){ setData(); $interval(setData, 1000*30); function setData(){ $scope.loading=true; test.stationDashBoard(function(data){ console.log(data); $scope.data=data.data; $scope.loading=false; //alert(data); },function(error){ alert('error') }) ; } }); http://plnkr.co/edit/ly43m5?p=preview

17
กล่องโต้ตอบการยืนยันบน ng-click - AngularJS
ฉันกำลังพยายามตั้งค่ากล่องโต้ตอบการยืนยันng-clickโดยใช้คำสั่ง angularjs ที่กำหนดเอง: app.directive('ngConfirmClick', [ function(){ return { priority: 1, terminal: true, link: function (scope, element, attr) { var msg = attr.ngConfirmClick || "Are you sure?"; var clickAction = attr.ngClick; element.bind('click',function (event) { if ( window.confirm(msg) ) { scope.$eval(clickAction) } }); } }; }]) วิธีนี้ใช้งานได้ดี แต่น่าเสียดายที่นิพจน์ภายในแท็กโดยใช้คำสั่งของฉันไม่ได้รับการประเมิน: <button ng-click="sayHi()" ng-confirm-click="Would you …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.