@@ -41,8 +41,11 @@ clientSideScripts.findBinding = function() {
41
41
var bindings = using . getElementsByClassName ( 'ng-binding' ) ;
42
42
var matches = [ ] ;
43
43
for ( var i = 0 ; i < bindings . length ; ++ i ) {
44
- var bindingName = angular . element ( bindings [ i ] ) . data ( ) . $binding [ 0 ] . exp ||
45
- angular . element ( bindings [ i ] ) . data ( ) . $binding ;
44
+ var elemData = angular . element ( bindings [ i ] ) . data ( ) ;
45
+ if ( ! elemData || ! elemData . $binding ) {
46
+ continue ;
47
+ }
48
+ var bindingName = elemData . $binding [ 0 ] . exp || elemData . $binding ;
46
49
if ( bindingName . indexOf ( binding ) != - 1 ) {
47
50
matches . push ( bindings [ i ] ) ;
48
51
}
@@ -64,8 +67,11 @@ clientSideScripts.findBindings = function() {
64
67
var bindings = using . getElementsByClassName ( 'ng-binding' ) ;
65
68
var matches = [ ] ;
66
69
for ( var i = 0 ; i < bindings . length ; ++ i ) {
67
- var bindingName = angular . element ( bindings [ i ] ) . data ( ) . $binding [ 0 ] . exp ||
68
- angular . element ( bindings [ i ] ) . data ( ) . $binding ;
70
+ var elemData = angular . element ( bindings [ i ] ) . data ( ) ;
71
+ if ( ! elemData || ! elemData . $binding ) {
72
+ continue ;
73
+ }
74
+ var bindingName = elemData . $binding [ 0 ] . exp || elemData . $binding ;
69
75
if ( bindingName . indexOf ( binding ) != - 1 ) {
70
76
matches . push ( bindings [ i ] ) ;
71
77
}
@@ -168,8 +174,11 @@ clientSideScripts.findRepeaterElement = function() {
168
174
bindings . push ( childBindings [ i ] ) ;
169
175
}
170
176
for ( var i = 0 ; i < bindings . length ; ++ i ) {
171
- var bindingName = angular . element ( bindings [ i ] ) . data ( ) . $binding [ 0 ] . exp ||
172
- angular . element ( bindings [ i ] ) . data ( ) . $binding ;
177
+ var elemData = angular . element ( bindings [ i ] ) . data ( ) ;
178
+ if ( ! elemData || ! elemData . $binding ) {
179
+ continue ;
180
+ }
181
+ var bindingName = elemData . $binding [ 0 ] . exp || elemData . $binding ;
173
182
if ( bindingName . indexOf ( binding ) != - 1 ) {
174
183
matches . push ( bindings [ i ] ) ;
175
184
}
@@ -215,8 +224,11 @@ clientSideScripts.findRepeaterColumn = function() {
215
224
bindings . push ( childBindings [ k ] ) ;
216
225
}
217
226
for ( var j = 0 ; j < bindings . length ; ++ j ) {
218
- var bindingName = angular . element ( bindings [ j ] ) . data ( ) . $binding [ 0 ] . exp ||
219
- angular . element ( bindings [ j ] ) . data ( ) . $binding ;
227
+ var elemData = angular . element ( bindings [ j ] ) . data ( ) ;
228
+ if ( ! elemData || ! elemData . $binding ) {
229
+ continue ;
230
+ }
231
+ var bindingName = elemData . $binding [ 0 ] . exp || elemData . $binding ;
220
232
if ( bindingName . indexOf ( binding ) != - 1 ) {
221
233
matches . push ( bindings [ j ] ) ;
222
234
}
@@ -226,43 +238,43 @@ clientSideScripts.findRepeaterColumn = function() {
226
238
} ;
227
239
228
240
/**
229
- * Find an input element by model name.
241
+ * Find input element by model name.
230
242
*
231
243
* arguments[0] {Element} The scope of the search.
232
244
* arguments[1] {string} The model name.
233
245
*
234
- * @return {Array.< Element? } The matching input elements .
246
+ * @return {Element } The first matching input element .
235
247
*/
236
- clientSideScripts . findInputs = function ( ) {
248
+ clientSideScripts . findInput = function ( ) {
237
249
var using = arguments [ 0 ] || document ;
238
250
var model = arguments [ 1 ] ;
239
251
var prefixes = [ 'ng-' , 'ng_' , 'data-ng-' , 'x-ng-' , 'ng\\:' ] ;
240
252
for ( var p = 0 ; p < prefixes . length ; ++ p ) {
241
253
var selector = 'input[' + prefixes [ p ] + 'model="' + model + '"]' ;
242
254
var inputs = using . querySelectorAll ( selector ) ;
243
255
if ( inputs . length ) {
244
- return inputs ;
256
+ return inputs [ 0 ] ;
245
257
}
246
258
}
247
259
} ;
248
260
249
261
/**
250
- * Find input elements by model name.
262
+ * Find an input elements by model name.
251
263
*
252
264
* arguments[0] {Element} The scope of the search.
253
265
* arguments[1] {string} The model name.
254
266
*
255
- * @return {Element } The first matching input element .
267
+ * @return {Array.< Element> } The matching input elements .
256
268
*/
257
- clientSideScripts . findInput = function ( ) {
269
+ clientSideScripts . findInputs = function ( ) {
258
270
var using = arguments [ 0 ] || document ;
259
271
var model = arguments [ 1 ] ;
260
272
var prefixes = [ 'ng-' , 'ng_' , 'data-ng-' , 'x-ng-' , 'ng\\:' ] ;
261
273
for ( var p = 0 ; p < prefixes . length ; ++ p ) {
262
274
var selector = 'input[' + prefixes [ p ] + 'model="' + model + '"]' ;
263
275
var inputs = using . querySelectorAll ( selector ) ;
264
276
if ( inputs . length ) {
265
- return inputs [ 0 ] ;
277
+ return inputs ;
266
278
}
267
279
}
268
280
} ;
0 commit comments