Pemecahan masalah Tip untuk sudut arahan (Atau, Belajar untuk mencintai tanda hubung)

Saya punya beberapa aplikasi yang membuat $http.get() panggilan dan saya ingin untuk dapat menunjukkan pesan kesalahan yang diformat dengan baik dengan rincian kesalahan jelek yang tersembunyi, tetapi dapat diakses.  Pada dasarnya, ini:

image

Dan kemudian jika pengguna mengklik pada kesalahan, mereka melihat Info lebih lanjut:

image

Hal-hal sederhana.  Karena kesalahan potensial yang tepat sama dapat muncul di layar administratif serta layar pengguna akhir, itu jelas menyerukan sudut arahan kustom.  SAYA  menemukan ini seri yang luar biasa Artikel (http://weblogs.asp.net/dwahlin/creating-custom-angularjs-directives-part-i-the-fundamentals) Oleh Agung Dan Wahlin.  Mengikuti nasihatnya, Saya sangat cepat membuat <Halo-dunia> direktif dan pindah ke kesalahan tampilan squeegee saya lebih kompleks. Aku berlari ke sedikit kesulitan dengan direktif ini lebih kompleks.  Bahagia, semacam kebetulan, Saya telah mengatakan WebStorm (editor saya menggunakan hari ini) bahwa JS file file sudut dan itu membantu saya mencari tahu masalah.  Ini adalah kode untuk direktif sendiri:

angular.module("CDLApp").direktif("generalCdlErrorHandler", fungsi() {

kembali {
membatasi: "E",
ganti: benar,

Ruang lingkup: {
retrieveLastConfigurationError: "&"
},

template:
'<div kelas = "peringatan peringatan-bahaya" peran = "waspada" ng-init = "doShowExpandedErrorDetails = true" ng-Tampilkan = "retrieveLastConfigurationError()">' +
' Ada i/o error atau kesalahan lainnya. Hal ini biasanya terjadi karena file data konfigurasi tidak bisa ' +
' ditemukan atau file konfigurasi berisi informasi yang tidak akurat (seperti referensi perpustakaan dokumen ' +
' yang tidak ada).' +
' <br />' +
' <div ng-Tampilkan = "doShowExpandedErrorDetails">' +
' <href = "#" ng-klik = "doShowExpandedErrorDetails = ! doShowExpandedErrorDetails">' +
'Klik di sini untuk menyembunyikan rincian.' +
' </a>: ' +
' <br />' +
' <pra>{{retrieveLastConfigurationError() | JSON}}</pra>' +
' <br />' +
' </div>' +
' <div ng-Tampilkan = "!doShowExpandedErrorDetails">' +
' <href = "#" ng-klik = "doShowExpandedErrorDetails = ! doShowExpandedErrorDetails">' +
'Klik di sini untuk memperluas rincian kesalahan.' +
' </a>' +
' </div>' +
'</div>'
};
});

Pada dasarnya, Saya membuat sebuah elemen baru yang disebut "generalCdlErrorHandler".  Itu membutuhkan akses ke fungsi yang disebut retrieveLastConfigurationError dan yang ditangani dalam cakupan obyek.  Aku mungkin bisa hanya menggunakan orangtua lingkup, tapi yang merasa malas.  Jika ada yang berpikir aku harus melakukan itu, Saya akan senang mendengar tentang hal itu di komentar.

Ini adalah semua baik-baik saja, tetapi saya tidak mendapatkan apa-apa.  Tidak ada kesalahan yang muncul di konsol (setidaknya sekali aku tetap semua kesalahan sx saya membuat sepanjang jalan).  Aku hanya tidak mendapatkan output dari direktif.  Aku pergi dan menambahkan beberapa teks statis sebelum direktif ng-show dan * melakukan * mendapatkan bahwa. Ini membuat saya berpikir bahwa mungkin direktif tidak diizinkan untuk secara implisit membuat baru vars seperti "doShowExpandedErrorDetails" atau "ng-init" di sana. 

Aku kembali ke HTML untuk melihat jika aku tipe dan kali ini WebStorm membantu saya keluar.  Saya telah lewat dalam fungsi retrieveLastConfigurationError seperti ini:

<Umum-cdl--handler kesalahan retrieveLastConfigurationError="CDLController.retrieveLastConfigurationError()">
</Umum-cdl--handler kesalahan>

Tapi itu benar-benar diperlukan untuk ini:

<Umum-cdl-kesalahan-penangan mengambil-terakhir-konfigurasi-kesalahan = "CDLController.retrieveLastConfigurationError()">
</Umum-cdl--handler kesalahan>

WebStorm adalah cukup pintar untuk tahu bahwa itu harus menjadi hyphenated.  Jika itu tidak memberikan petunjuk yang, Saya akan mungkin akan masih pemecahan masalah ini Tersenyum.  Fun kali!

Trik ini: tidak hanya nama elemen direktif hyphenated, Jadi adalah atribut apapun Anda menambahkan untuk itu.  Begitu saya menambahkan tanda hubung, itu semua bekerja hebat.  Dan tutorial yang terjadi menggunakan nama tunggal yang pendek, Jadi saya tidak membuat sambungan.

Semoga ini bisa membantu seseorang.

</akhir>

undefinedBerlangganan ke blog saya.

Ikuti saya di kegugupan di http://www.twitter.com/pagalvin

IE9 Benar-benar tidak menyukainya ketika Anda mengambil jalan pintas dengan Anda <rentang> Tag

Aku telah jatuh ke dalam kebiasaan buruk dalam menggunakan Chrome sepanjang waktu.  Ini "buruk" karena hal-hal yang aku mengembangkan benar-benar kebutuhan untuk menjalankan banyak browser web lainnya, termasuk, Sayangnya IE8.  Laptop kerja saya memiliki IE9 standar untuk alasan apa pun) dan saya hanya melakukan cepat periksa untuk melihat hal-hal apa yang tampak seperti dan... itu tidak cantik.  Misalnya:

image

Memiliki * seharusnya * terlihat seperti ini:

image

 

Tidak hanya adalah off, tapi acara klik saya tidak menembak.  (Kebanyakan dari mereka, Pokoknya).

Visual, itu tampak seperti hal-hal mulai pergi rel dekat "Advanced Setup" link.  Aku menggali ke dalam bagian dari HTML dan menemukan bahwa saya punya baris ini:

<span class = "glyphicon glyphicon--jendela baru" />

Yang tampaknya seperti diijinkan sintaks ("Versi chrome 40.02214.94 m"baik-baik dengan). Aku pergi dan berubah itu pula, seperti yang ditunjukkan:

<span class = "glyphicon glyphicon--jendela baru"></rentang>

Yang tetap.

Seperti hal kecil disebabkan berantakan besar layar.  Fun kali.

Hal ini terjadi untuk menjadi cepat memperbaiki, tetapi juga jenis hal yang hanya mendapat tulang belakang Anda keluar dari keselarasan ketika Anda melihatnya.  Ada lebih dari 500 baris HTML dalam fungsi admin kecil ini dan Anda hanya tidak ingin menemukan diri Anda menggali antara mereka gulma, pernah Tersenyum.

</akhir>

undefinedBerlangganan ke blog saya.

Ikuti saya di kegugupan di http://www.twitter.com/pagalvin

HTTP 406 Kesalahan saat menggunakan sudut $http.get terhadap SharePoint seluruh titik akhir

Update: Marc AD ndersson menunjukkan sepotong besar info: http://Blogs.Office.com/2014/08/13/JSON-Light-support-Rest-SharePoint-api-Released/. Itu menjelaskan banyak hal :).

Itu mungkin judul posting blog terburuk pernah! Anyhoo.

Saya biasanya melakukan semua saya prototyping terhadap O365 instance. Aku punya contoh pribadi saya sehingga saya tidak perlu khawatir tentang mempengaruhi orang lain. Sebagai samping-ingat saat kami panggilan dilakukan di sekitar mesin virtual pada laptop kami dengan Lumut-SQL Server, IIS, memutuskan vs Hyper-V. VMWare? Anyhoo...

Saya telah mengembangkan sebuah aplikasi yang menggunakan sudut dalam lingkungan ini yang melakukan, di antara hal lain, ini:

$http.Get(serverUrl)
.sukses(fungsi(data, status, header, config) {

var getLinksResponse = data;

getLinksResponse.value.forEach(fungsi(theResult) {

// dan seterusnya dan jadi buih

Ini bekerja baik di dua berbeda SharePoint online lingkungan. Namun, Ketika rekan saya porting ke Cloudshare instance, Ia mendapatkan HTTP 406 kesalahan (yang adalah pertama kalinya saya pernah punya satu, Jadi... yay, Saya rasa). Kami melakukan sedikit riset dan melihat bahwa header "Menerima" adalah off. SharePoint online adalah sangat senang dengan:

Menerima: aplikasi json

Tetapi contoh cloudshare (yang merupakan SP pada prem, host di virtual server) ingin klasik "odata = verbose" ditambahkan dalam juga:

Menerima: aplikasi json;oData = verbose

Untuk memperbaikinya, Kami menambahkan header seperti:

var config = {header: {
'Menerima': ' aplikasi json;oData = verbose'
}
};

$http.Get(serverUrl,config)
.sukses(fungsi(data, status, header, config) {

var getLinksResponse = data;

getLinksResponse.value.forEach(fungsi(theResult) {

// dan seterusnya dan jadi buih

Yang menyingkirkan 406, Tapi itu juga mengubah format respon. Itu lebih... verbose. (Haha!) Lebih banyak perubahan yang diperlukan dan di sini adalah hasil akhir:

var config = {header: {
'Menerima': ' aplikasi json;oData = verbose'
}
};

$http.Get(serverUrl,config)
.sukses(fungsi(data, status, header, config) {

var getLinksResponse = data;

getLinksResponse.d.Results.forEach(fungsi(theResult) {

// dan seterusnya dan jadi buih

Ini hanya berubah menjadi 30 menit masalah bagi kita, Jadi kita beruntung. Mudah-mudahan seseorang menemukan ini berguna.

</akhir>

Bagaimana-untuk: Mengaktifkan beberapa sudut SharePoint Web Bagian pada halaman yang sama

Blog ini posting menjelaskan bagaimana Anda dapat memiliki beberapa Angular.js berbasis SharePoint web bagian (direferensikan melalui bagian web content editor) pada halaman yang sama. Aku memanggil editor konten web bagian (CEWP) itu referensi JavaScript yang dibangun menggunakan kerangka Angular.js "sudut Web bagian."

Sudut 's bootstrap proses super mudah dan hampir setiap contoh yang Anda temukan di the internets pergi sesuatu seperti ini:

<HTML ng-app = 'myApp'>

<bla /><bla /><bla />

</HTML>

Ini rusak, Namun, Jika Anda ingin mengaktifkan beberapa CEWP mewakili beberapa sudut web bagian pada halaman yang sama. Sudut akan hanya secara otomatis bootstrap terhadap direktif ng-app pertama itu menemukan – setidaknya pada sudut versi 1.3.6. Solusinya cukup sederhana – secara manual bootstrap kode Anda sebaliknya. Atas sekarang berubah menjadi sesuatu seperti ini:

<bodyHTMLan >>< kuat > pesan yang kuat.</strong> </body> </html> ">
<d
IV id =”bootstrapHere” ng-controller =”myController sebagai theController”>
<bla /><bla /><bla />
</div>
</bodyHTMLan >>< kuat > pesan yang kuat.</strong> </body> </html> ">

<script src =”//Ajax.googleapis.com/Ajax/libs/angularjs/1.3.6/angular.js”></script>

<script>
angular.bootstrap(angular.Element(document.getElementById(“bootstrapHere”)),['myApp']);
</script>

Pada dasarnya, Alih-alih menggunakan ng-app pada elemen untuk melakukan bootstrap Anda, Anda menampar ID ke elemen. Kemudian, menggunakan bootstrap() metode pada sudut itu sendiri untuk mengendalikan bootstrap proses pada saat run-time. Saya telah menguji ini dengan tiga bagian web sudut yang berbeda pada halaman yang sama dan kerjanya pesona.

</akhir>

undefinedBerlangganan ke blog saya.

Ikuti saya di kegugupan di http://www.twitter.com/pagalvin

Komisi kendaraan bermotor New Jersey mengambil korban lain

Jadi, anakku sedikit terlambat mendapatkan izin mengemudi nya.  Kemarin, di pertengahan pagi, Ia truk ke Oakland NJ untuk mendapatkannya.  Dia mendapat di sana, mengisi keluar surat-suratnya dikeluarkan izin unstamped dan belajar bahwa ia sekarang harus pergi ke lain MVC lokasi untuk mengambil tes mata.  Karena, Rupanya, mata sangat terampil penguji tidak hanya tinggal di mana saja, Jadi NJ MVC perlu pergi mana bakat.  Atau, mungkin itu adalah karena mereka mengikuti filosofi Hamilton konsolidasi?  Sebanyak Hamilton merasa keuangan dan manufaktur konsolidasi secara kritis untuk kekuatan ekonomi masa depan Republik, mungkin NJ MVC merasa mereka perlu mengkonsolidasikan mata pengujian bakat untuk kekuatan masa depan NJ MVC?  Mungkin itu adalah bagian dari rencana tak terlukiskan?  Sayang, Saya memiliki hanya pertanyaan tentang topik ini dan tidak ada jawaban. 

Saran berikut Oakland, istri dan anaknya truk cara mereka ke Lodi, NJ dengan izin unstamped untuk Lodi.  Lodi mungkin memiliki parkir terburuk setiap NJ MVC lokasi.  Dan, karena mereka juga host beberapa langka namun sangat didambakan mata pengujian mesin dan eye pengujian profesional, mereka menarik supplicants semua garis, nuansa, pendidikan dan penonton.  Anakku bekerja jalan melalui labirin baris dan arah yang disediakan oleh para profesional NJ MVC "never-look-them-in-the-eye" dan akhirnya tiba di mata pengujian baris.  Mereka sekarang belajar bahwa orang Oakland melakukan kesalahan di izin unstamped.  Dia salah mengetik nomor jaminan sosial, menempatkan "8" tempat "2" dalam satu digit.  NJ DMV orang mengetahui hal ini karena ketika ia ditarik SS# yang salah di komputer, itu tidak menunjukkan nama anak saya.  Istri dan anaknya mengatakan, "oh, itu adalah nomor yang salah, Anda perlu '2' sana daripada '8.' "  Apa yang banyak, mungkin setiap orang berpikiran adil harapkan saat ini adalah untuk orang NJ MVC hanya benar jumlah mereka hanya masuk ke komputer.  Ha! Bodoh!  Tidak, Sebaliknya ia diminta untuk memberikan kartu jaminan sosial.  Mari kita ngelantur sejenak dan mempertimbangkan bahwa untuk mendapatkan izin unstamped di tempat pertama, Dia sudah menyediakan paspor kami serta New Jersey akte kelahiran dan Surat ditulis kepada dia di alamat rumah nya.   Ibunya adalah dengan dia., saham nama-Nya, Alamat nya, tinggi (tapi sayangnya, tidak selera film sci-fi) ... Anda nama itu, anakku baik dan benar-benar diidentifikasi sebagai kehidupan lama penduduk negara AS ini dan memang, New Jersey sendiri oleh ukuran apapun yang dapat Anda bayangkan.  Jika orang NJ MVC akan memiliki cukup tetap kesalahan yang dibuat orang Oakland, komputer telah mengeluarkan informasi anak-Ku dan yang akan menjadi akhir cerita.  Tetapi lagi, bodoh!  Mereka tidak bisa melakukan itu. Sebaliknya, NJ MVC bersikeras pada kartu jaminan sosial sekarang. 

Jadi, istri dan anaknya pergi ke rumah untuk mendapatkannya dan kembali.  Dan pada akhirnya, ia memperoleh his izin.

Itu adalah tiga berbeda perjalanan ke NJ MVC dalam satu hari.  Untuk mendapatkan izin nya.  Butuh waktu hampir 6 jam dari awal sampai akhir.  Inilah AnakKu pengantar mengemudi dalam keadaan Taman.

NJ MVC jelas-jelas rusak. 

</akhir>

Sudut gagal untuk Bootstrap pada IE9

Aku sudah bermain-main dengan Angular.js terakhir lama sementara dan untuk kehidupan saya, Aku tidak bisa mendapatkan aplikasi saya sudut untuk memulai pada IE9.  Mereka semua bekerja dengan baik di IE11 tapi IE9 hanya akan menunjukkan kurung kurawal dan potongan-potongan serupa.

Aku mencari di sekitar dan tidak bisa menemukan orang mengeluh tentang masalah.  Itu bekerja dengan baik di Chrome, IE11, tidak hanya IE9.

Saya terlempar oleh kenyataan bahwa IE konsol ini memberi saya kesalahan seperti ini:

SEC7111: Keamanan HTTPS dikompromikan oleh res://ieframe.dll/forbidframing.htm

Kesalahan itu telah saya berpikir ada beberapa masalah dalam mendownload sudut atau Perpustakaan lain yang saya butuhkan.  Ternyata, ini bukanlah masalah.

Oleh mengaduk internets, Saya akhirnya menemukan bahwa frase yang saya perlu untuk mencari "bootstrap" dan bahwa sepertinya bootstrap gagal.  Di ujung, masalah saya adalah bahwa saya telah dihiasi saya <HTML> Tag dengan atribut ng-app, seperti dalam:

<HTML ng-app = "MatrixApp">

Yah, itu tidak bekerja untuk IE9.  Sebaliknya, Aku membungkus seluruh HTML di <bodyHTMLan >>< kuat > pesan yang kuat.</strong> </body> </html> "> di dalam sebuah div dan referensi MatrixApp seperti itu.

Masalah dipecahkan.

Mudah-mudahan ini menghemat seseorang beberapa kesedihan.

</akhir>

Menciptakan bentuk-bentuk kustom SharePoint tanpa Master Halaman

Rekan saya, Lauren Jones, menulis berjalan-melalui bagus tentang cara membuat formulir entri data kustom menggunakan SharePoint Designer.  Itu bukan "baru di bawah matahari" tapi ada sedikit twist.  Dalam kata-katanya:

Membuat bentuk kustom adalah lurus ke depan dalam SharePoint Designer, menavigasi ke daftar Anda dan pada pita menu pilih ' bentuk daftar’ dan menciptakan template bentuk baru.

Ini bekerja dengan baik jika Anda ingin formulir harus terpasang ke Anda master Halaman, tetapi bagaimana jika Anda memiliki kasus penggunaan menciptakan bentuk yang di jendela popup atau adalah standalone tanpa krom SharePoint. Aku benar-benar kasus penggunaan ini, Aku ingin untuk kustom gaya bentuk kemudian gunakan bentuk popup div inline dalam halaman.

Jangan putus asa, ada cara untuk melakukan hal ini yang tidak yang intuitif tapi cukup mudah untuk melakukannya.

Anda dapat membaca semua rincian di sini: http://www.bigapplesharepoint.com/pages/View-An-Insight.aspx?BlogID=55&rtitle=customforms&rsrouce=pgblog dan Anda dapat melihatnya dalam tindakan dengan mengklik link "Hubungi kami untuk informasi lebih lanjut" di salah satu layanan pada halaman layanan dari situs Big Apple SharePoint kami (http://www.bigapplesharepoint.com/services).

Lauren menulis banyak hal baik tentang UX dan branding.  Anda dapat melihat lebih banyak di sini menulis di sini: http://www.bigapplesharepoint.com/team?showExpertName=Lauren%20Jones.

</akhir>

Mengganggu desain dan mabuk di Coolaid fitur

Rekan saya, Lauren Jones (https://twitter.com/laurenjones02) menulis artikel pendek yang berbicara tentang bagaimana terlalu kompleks rollouts SP sangat keras pada pengguna akhir.  Semacam jelas, di jalan, tetapi sangat mudah bagi saya untuk mengatakan bahwa setelah saya sudah diatur banyak kompleks rollouts hal yang siap pengguna akhir selama bertahun-tahun.

Inilah kunci ' grafik:

Lima tahun yang lalu, Kapan saya digulirkan SharePoint ke organisasi untuk pertama kalinya dengan tujuan menjadi platform kolaborasi dan mengganti drive, Kami juga memperkenalkan sosial dan news feed melalui RSS, Situs saya dan profil, dan folksonomy Tag. Tak perlu dikatakan, ini adalah banyak bagi pengguna akhir untuk mengadopsi dalam satu tukikan. Sementara ada sukses dengan adopsi di sekitar manajemen dokumen dan profil, RSS dan penandaan yang kurang berhasil dan ini benar-benar karena perubahan manajemen komunikasi dan pelatihan. Kita tidak bisa melakukannya sekaligus. Mengambil kurang adalah pendekatan yang lebih dan melepaskan fungsi dalam tahap lebih mudah bagi pengguna akhir untuk menerima dan mengadopsi.

Artikel ini mengingatkan sedikit lain yang saya baca dengan Kris Gale berkaitan dengan set fitur heboh 's, “Satu biaya insinyur dan manajer produk tidak mempertimbangkan.”

Jika Anda memiliki cerita horor atau kisah sukses untuk berbagi, Saya berharap Anda akan melakukannya dalam komentar situs Big Apple.

</akhir>

Mingguan Roundup – Juli 13, 2014

Saya untuk xpost ini di sini selama akhir pekan lalu. 

Berikut adalah 3Rd artikel dalam seri tempat aku menulis tentang posting blog dan artikel online yang terutama menarik untuk saya dalam minggu terakhir atau lebih.  Entry minggu ini di seri menyoroti dua proyek CodePlex pengganti InfoPath potensial dan untuk mengelola izin dengan SharePoint, Berita tentang satelit, Namun lain kerangka JavaScript dan mengangguk untuk Ada Babbage dan perannya dalam sejarah komputasi.

Anda dapat membacanya di sini: http://www.bigapplesharepoint.com/pages/View-An-Insight.aspx?BlogID=93&rsource=pgblog&rtitle=roundup

</akhir>

Lihat CAML query secara Real Time dengan ULS penampil

Rekan saya, Ashsih Patel, menulis up berjalan-melalui bagus menggambarkan bagaimana melihat CAML di balik berbagai SP query yang terjadi usaha dalam real-time menggunakan penampil ULS.

Here's the intro:

Apakah Anda ingin tahu apa CAML query dieksekusi oleh SharePoint Server?

Yah, untuk pemecahan masalah dan tujuan belajar, itu bukanlah ide yang buruk. Setidaknya, SQL Profiler telah membantu kami memecahkan banyak masalah.

Mungkin ada produk di luar sana tetapi saya tahu cara untuk melakukannya tanpa pengeluaran tambahan dolar! Dan di sini adalah...

Anda dapat membaca semuanya di sini: http://www.bigapplesharepoint.com/pages/View-An-Insight.aspx?BlogID=68&rsource=pgblog&rtitle=caml.

</akhir>